본문 바로가기

동아리

파이썬 함수 #2

함수에서 여러개의 값 반환하기

>>> 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