
학습 목표
목차
인수의 종류와 리스트와 딕셔너리의 언패킹까지 살펴볼 예정
위치 인수(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으로 정해져 있다!

