함수에서 여러개의 값 반환하기
>>> def add_sub(a, b):
return a+b, a-b
>>> x, y = add_sub(10,20)
>>> x
30
>>> y
-10
위치 인수 : 함수에 인수를 순서대로 넣는 방식
>>> def print_numbers(a,b,c):
print(a)
print(b)
print(b)
>>> print_numbers(10, 20, 30)
10
20
20
언패킹
함수(*리스트)
함수(*튜플)
>>> x = [10,20,30]
>>> print_numbers(*x)
10
20
20
가변인수
인수의 개수가 정해지지 않음 可變(가변) -> 변할 수가 있음.
>>> x = [10,20,30]
>>> print_numbers(*x)
10
20
20
>>> def print_numbers(*args):
for arg in args:
print(arg)
>>> print_numbers(10,20,30,40)
10
20
30
40
>>> print_numbers(10)
10
가변인수 만들기
print_numbers(*x) = (10)과 같음
print_numbers(*y) = (10, 20, 30, 40)과 같음
>>> x = [10]
>>> print_numbers(*x)
10
>>> y = [10,20,30,40]
>>> print_numbers(*y)
10
20
30
40
키워드 인수 사용하기
함수를 인수에 넣을때 값이나 변수를 그대로 넣음.
-> 용도가 뭔지 알기 어려움
용도를 알기 위해 나온 것이 키워드 인수.
원래는 순서대로 인수를 넣어야했지만 키워드 인수를 사용하면 순서를 지키지 않고 값을 넣어도 된다.대신 넣을때 name='홍길동' 같은 형식으로 넣기.
>>> def personal_info(name, age, address):
print('이름: ', name)
print('나이: ', age)
print('주소: ', address)
>>> personal_info('홍길동', 30, '서울시 용산구 이촌동')
이름: 홍길동
나이: 30
주소: 서울시 용산구 이촌동
딕셔너리 언패킹 사용하기
딕셔너리를 한번 언패킹하면 (*) 키를 사용한다는 뜻, 두번 언패킹하면 (**) 값을 사용.
>>> personal_info(**{'name' : '홍길동', 'age': 30, 'address' : '서울시 용산구 이촌동'})
이름: 홍길동
나이: 30
주소: 서울시 용산구 이촌동
매개변수에 초깃값 지정하기
초기값이 이미 지정된 매개변수 다음에는 초기값이 없는 매개변수 올 수 없음.
-> 초기값이 있는 매개변수는 뒤로 몰아준다
>>> def personal_info(name, age, address='비공개'):
print('이름: ', name)
print('나이: ', age)
print('주소: ', address)
>>> personal_info('홍길동', 30)
이름: 홍길동
나이: 30
주소: 비공개
함수에서 재귀호출 사용하기
파이썬의 최대 재귀 깊이가 1000으로 지정되어 있어, 최대 재귀 깊이를 초과하면 에러가 발생.
>>> def hello():
print('Hello, World!')
hello()
재귀호출에 종료 조건 만들기
>>> def hello(count):
if count == 0: #종료 조건을 만듦
return
print('Hello, World!'. count)
count -= 1 #count 1 감소
hello(count) #다시 hello에 넣음
>>> hello(5) #hello 함수 호출
'동아리' 카테고리의 다른 글
파이썬 클래스 #2 (0) | 2020.09.04 |
---|---|
파이썬 클래스 (0) | 2020.09.02 |
파이썬 함수 (0) | 2020.07.10 |
백준 for & while문 (0) | 2020.07.08 |
파이썬 for문 (0) | 2020.07.08 |