학습 목표
목차
인수의 종류와 리스트와 딕셔너리의 언패킹까지 살펴볼 예정
위치 인수(positional argument)
*
붙여서 함수에 넣어주기함수(*리스트)
함수(*튜플)
언패킹(unpacking)
*
를 붙이면 언패킹(unpacking)되어 -> print_nums(10, 20, 30)
와 동작이 똑같아서 함수 잘 작동!직접 붙여도 동작은 동일
가변 인수(variable argument)
*
기호를 붙이면 된다!def 함수명(*매개변수):
코드
🚨주의🚨 : 언패킹과 가변 인수에서의
*
의 차이?
- 언팩킹 :
인자에 * 기호
를 붙인다!- 가변 인수 :
매개변수 앞에 * 기호
를 붙인다!
모두 더해주는 함수를 가변인수로 만들어보기
*args
에 들어온 가변인수들은 튜플이어서 for문으로 반복 가능!
인수가 없어도 에러 없이 리턴값 출력!
함수에 인수를 직접 여러 개 넣어도 되고, 리스트나 튜플 언패킹을 사용해도 된다!
키워드 인수
그래서 키워드 인수를 사용한다!
가장 대표적인 키워드 인수
print
함수의 sep
, end
키워드 인수 + 딕셔너리 언패킹
딕셔너리 언패킹 : 딕셔너리 앞 **
붙여 사용
함수(**딕셔너리)
dog_info
함수 재사용
딕셔너리에 '키워드': 값
형식으로 인수 저장 & 앞에 **
붙여서 함수에 삽입
변수 대신 딕셔너리 앞에 바로 **
붙여도 동작 동일
왜 **두번일까?
- 키만 출력되기 때문!
- 딕셔너리는 키:값 쌍이기 때문에 2개를 붙이는 것
def 함수명(*매개변수):
코드
items()
지역 변수(local variable)
함수 내부에서 선언하는 변수
sum_nums
에서 누적 합 저장을 위해 sum
사용 -> 함수 내에서 선언했으니 지역 변수!지역 변수는 함수 안에서만 사용 + 밖으로는 알려지지 않는다!
함수를 호출 ➡️ mango
은 내부적으로 temp
변수 생성&사용 ➡️ 함수 종료 시 사라짐.
지역변수를 사용하는 이유
전역 변수(global variable)
함수 바깥에서 선언하는 변수
지역 변수와 달리 어디에서나 참조 가능
ex) 할인율이 정해지면 할인 이후 가격을 바로 출력 해주는 함수 만들기
sale_rate
sale_rate
를 바꿔보면?재귀 호출(recursive call)이란?
파이썬은 최대 재귀깊이
가 1,000으로 정해져 있다!