함수에서 두개 이상의 값 반환하기
구조
def 함수이름(매개변수): return 반환값1, 반환값2
ex)
def add_sub(a,b): return a+b, a-b x,y = add_sub(20,10) print(x) print(y) --출력값-- 30 10
첫번째 반환값은 첫번째 변수에, 두번째 반환값은 두번째 변수에 들어가는 것을 알 수 있다.
위치인수
위치인수
- 함수에 인수를 순서대로 넣는 방식
ex)
def asdf(a,b,c,d): print(a) print(b) print(c) print(d) asdf(10,20,30,40) --출력값-- 10 20 30 40
언패킹
인수를 순서대로 넣을때 리스트나 튜플을 사용할 수 있다.
구조
def 함수이름(*리스트): 내용 def 함수이름(*튜플): 내용
ex)
def asdf(*a): for i in a: print(i) list1 = [1,2,3,4,5] asdf(*list1) --출력-- 1 2 3 4 5
가변인수
-인수의 개수가 정해지지 않은 인수
구조
def 함수이름(*매개변수): 내용
매개변수 앞에 *을 붙여서 만든다.
ex)
def print_num(*args): for i in args: print(i) print_num(10) print() print_num(10,60,50,20) --출력-- 10 10 60 50 20
변수 하나를 넣어도 되고 여러개를 넣어도 된다.
키워드 인수
-각 변수의 용도를 알기 쉽게 표현한 인수
ex)
def per_info(name, age, address): print('이름 :',name) print('나이 :',age) print('주소 :',address) per_info('파이썬', 15, '서울시') --출력-- 이름 : 파이썬 나이 : 15 주소 : 서울시
각 인수의 용도가 뭔지 한눈에 알 수 있음
항상 인수의 용도와 순서를 맞춰야함
-함수(키워드 = 값)
키워드 인수는 항상 용도와 순서를 맞추어야하지만 함수(키워드 = 값)을 이용하면 용도만 기억해도 됨
ex)
def per_info(name, age, address): print('이름 :',name) print('나이 :',age) print('주소 :',address) per_info(age = 15, name = '파이썬', address='서울시') --출력-- 이름 : 파이썬 나이 : 15 주소 : 서울시
순서를 지키지 않아도 값이 제대로 출력된다.
키워드 인수와 딕셔너리 언패킹
딕셔너리는 {키:값} 의 형태로 되어있기때문에 한번 언패킹하면 키값이 언패킹된다
값을 얻으려면 **을 사용하여 두번 언패킹 해야한다
구조
함수(**딕셔너리)
ex)
def per_info(name, age, address): print('이름 :',name) print('나이 :',age) print('주소 :',address) a = {'name':'파이썬', 'age':15, 'address':'서울시'} per_info(**a) --출력-- 이름 : 파이썬 나이 : 15 주소 : 서울시
딕셔너리의 키와 함수의 키워드 인수의 이름을 똑같이 설정하지 않으면 오류가 난다.
def per_info(name, age, address): print('이름 :',name) print('나이 :',age) print('주소 :',address) a = {'name':'파이썬', 'age':15, 'address':'서울시'} per_info(*a) --출력-- 이름 : name 나이 : age 주소 : address
언패킹을 한번만하면 키를 사용 할 수 있다
매개변수 초기값 지정
구조
def 함수이름(매개변수 = 값): 내용
ex)
def per_info(name, age, address = '비공개'): print('이름 :',name) print('나이 :',age) print('주소 :',address) per_info('파이썬', 15) print() per_info('파이썬', 15, '서울시') --출력-- 이름 : 파이썬 나이 : 15 주소 : 비공개 이름 : 파이썬 나이 : 15 주소 : 서울시
초기값을 지정해준 매개변수는 비워두면 초기값이 출력된다
초기값이 지정되있더라도 값을 넣으면 해당 값이 출력된다.
#초기값이 지정된 매개변수 다음에는 초기값이 없는 매개변수가 올 수 없다
#초기값이 지정된 매개변수는 뒤쪽에 몰아서 넣는것이 좋다.
재귀호출
재귀호출이란?
-함수 내부에서 함수가 자기 자신을 또다시 호출하는 행위를 의미한다. 이러한 재귀 호출은 자기가 자신을 계속해서 호출하므로, 끝없이 반복한다.
ex)
def asdf(): print('aa') asdf() asdf()
asdf라는 함수속에서 계속 adsf를 호출하기때문에 계속 aa가 출력된다
파이썬의 최대 재귀 깊이는 1000이기때문에 asdf가 1000의 깊이를 넘기면 오류가 난다.
고로 재귀호출의 종료조건을 만들어 주는 것이 좋다.
ex)
def asdf(n): #종료조건 if n<=0: return print('aa', n) n-=1 asdf(n) asdf(5) --출력-- aa 5 aa 4 aa 3 aa 2 aa 1
'Emotion > 파이썬' 카테고리의 다른 글
클래스_2 (0) | 2020.09.02 |
---|---|
클래스_1 (0) | 2020.09.01 |
파이썬 함수_1 (0) | 2020.07.08 |
파이썬 반복문 (0) | 2020.07.07 |
파이썬_3 (0) | 2020.07.01 |