728x90
함수(초깃값, 값지정)
- 인자에 기본값 지정하기
# 초깃값 미리 설정하기
def say_intro(name, age, man=True):
print(f"제 이름은 {name} 입니다.")
print(f'제 나이는 {age}살 입니다.')
if man:
print('남자입니다.')
else:
print('여자입니다.')
say_intro('새싹', 7)
# 제 이름은 새싹 입니다.
# 제 나이는 7살 입니다.
# 남자입니다.
#초기 값을 설정했기 때문에 남성이라고 출력
say_intro('장미', 10, False)
# 제 이름은 장미 입니다.
# 제 나이는 10살 입니다.
# 여자입니다
초기값 설정 시 주의사항
man=True (매개변수)는 항상 뒤쪽에 놔야 한다.
아래 코드처럼 중간에 오면 오류가 발생하게 됨.
def say_intro(name, man=True, age): #name, age, man=True 이 순서가 정상
print(f"제 이름은 {name} 입니다.")
print(f'제 나이는 {age}살 입니다.')
if man:
print('남자입니다.')
else:
print('여자입니다.')
say_intro('새싹', 7)
#오류메시지
#SyntaxError: non-default argument follows default argument
args(arguments), kwargs(keyword arguments)
args와 kwargs는 함수에서 인자로 받을 값들의 개수가
불규칙하거나 많을 때 사용한다.
*args 처럼 매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 준다.
*args에 args는 임의로 정한 이름이다. (다른 이름 사용 가능)
**kwargs 처럼 매개변수 이름 앞에 **을 붙이면 매개변수
kwargs는 딕셔너리가 되고 모든 key=value 형태의 결괏값이 그 딕셔너리에 저장된다.
- args 사용해보기
def add_many(*args):
add = 0
for i in args:
add += i
return add
print(add_many(1,2,3,4,5)) #15
- kwargs 사용해보기
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a=1) #{'a': 1}
print_kwargs(name='나나', age=10) #{'name': '나나', 'age': 10}
패킹과 언패킹
패킹(packing)과 언패킹(unpacking)은 요소들을 묶어주고나 풀어주는 의미
위에 args해보기와 kwargs해보기에서 패킹을 확인해 볼 수 있다.
list 혹은 dictionary의 값을 함수에 입력할 때 주로 사용([ ], { }를 벗겨줌)
unpacking 해보기
#리스트 활용
def add_many(*args):
add = 0
for i in args:
add += i
return add
my_list = [1,2,3,4,5]
print(add_many(*my_list)) #my_list 글자 앞에 *를 사용하면 리스트가 벗겨지며 언패킹이됨
#15
#딕셔너리에서 활용
def my_profile(**kwargs):
profile = {}
profile['name'] = kwargs.get('name','-')
profile['age'] = kwargs.get('age','-')
profile['gender'] = kwargs.get('gender','-')
return profile
my_intro = {
'name': '새싹',
'age' : 7,
'gender': '남'
}
print(my_profile(**my_intro))
# {
# 'name': '새싹',
# 'age': 7,
# 'gender': '남'
# }
위에 글 내용은 오류 사항이 존재할 수 있습니다!
수정 사항이 있을 시 알려주시면 감사하겠습니다.
728x90
'Python' 카테고리의 다른 글
18. 파이썬 - class 문제 풀이 (2) | 2022.09.21 |
---|---|
17. 파이썬 - 숫자야구게임 만들기 (0) | 2022.09.19 |
15. 파이썬 - lambda, map, filter, sort (0) | 2022.09.14 |
14. 파이썬 - 축약식(Comprehension) (0) | 2022.09.14 |
13. 파이썬 - try/ exception (0) | 2022.09.14 |
댓글