파이썬

파이썬 함수(2)

content0474 2024. 10. 4. 15:50

내가 만들고 연습한 함수

 

1. 함수의 기본 구조

def 함수이름(매개변수1, 매개변수2..):

      동작할 코드

      return 반환값

sound( )라는 함수를 정의했다.

sound함수의 괄호안에 변수를 넣으면 {변수}만도 못 한 행동이다. 라는 문구가 반환되는 함수

여기에 이전 함수들을 같이 써서

유저한테 입력값을 받아서(input함수)

그것을 출력하기 위해(print함수), line1이라는 새로운 변수를 만들어줬다.

결과

 

2. 기본값

아무것도 전달하지 않았을 때 출력되는 값

order함수는 item, quantity, price를 받아야 하는데 quantity 와 price는 기본값이 1과 1000으로 지정되어 있다.

아무것도 써주지 않으면 자동으로 quantity에는1, price에는 1000이 들어간다.

이 때 기본값이 있는 매개변수는 언제나 기본값이 없는 매개변수보다 뒤에 와야 한다.

 

3. 가변매개변수

함수가 정해지지 않은 개수의 인수를 받을 수 있게 한다.

(1) args (arguments)

positinal arguments 라고도 한다. 인자를 이름으로 받지 않고 콤마로 구분하여 위치로 받는다는 뜻

age_sum이라는 함수는 받은 인자를 모두 더해서 (sum함수) 문구를 출력해주는(print함수) 함수이다.

이 때 파티원의 수는 2명, 3명, 4명.. 정해지지 않았기 때문에 *args를 사용했다.

파티로부터 파티원들의 나이를 입력받을텐데(input함수), 여러 값을 입력받기 위해 split함수를 사용했고, 입력값을 정수로 변환하기 위해 map을 사용했다.

마지막으로 리스트 형태로 변환해서 age_sum 함수에 전달한다.

처음에 작성한 틀린 코드, map은 객체로 전달하기에 이를 다시 list로 변환해야 하고, 함수에 party를 전달할 때는 *party로 해야한다.
결과1

 

결과2

 

(2) kwargs (keyword arguments)

알수없는 개수의 딕셔너리 형태 정보(키, 벨류)를 받음

character 함수는 딕셔너리를 받아서 각각 키:벨류 로 나타내고, 벨류값을 모두 더해서 보여주는 함수

이때도 사용자한테 숫자를 받기 위해 input함수, 여러개를 받기 위해 split, 정수로 변환하기 위해 map을 사용했다.

 

틀린코드. print("합계:",~)의 indentation이 맞지 않았다.

 

힘캐
지능캐