728x90
반응형
SMALL
함수란?
입력값을 가지고 어떤 일을 수행한 다음에 그 결과물을 내어놓는 것
파이썬 함수의 구조
def 함수명(매개변수):
<수행할 문장1>
<수행할 문장2>
...
def는 함수를 만들 때 사용하는 예약어
함수 이름 뒤 괄호 안의 매개변수는 이 함수에 입력으로 전달되는 값을 받는 변수
매개변수와 인수
매개변수는 함수에 입력으로 전달된 값을 받는 변수
인수는 함수를 호출할 때 전달하는 입력값을 의미
def add(a, b): # a, b는 매개변수
return a+b
print(add(3, 4)) # 3, 4는 인수
매개변수 지정하여 호출하기
>>> def add(a, b):
... return a+b
...
>>> result = add(a=3, b=7) # a에 3, b에 7을 전달
>>> print(result)
10
>>> result = add(b=5, a=3) # b에 5, a에 3을 전달
>>> print(result)
8
입력값이 몇 개가 될지 모를 때는 어떻게 해야 할까?
// 매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 준다
def 함수이름(*매개변수):
<수행할 문장>
...
ex1)
/* 여러 개의 입력값을 모두 더하는 함수 */
>>> def add_many(*args):
... result = 0
... for i in args:
... result = result + i
... return result
...
>>>
ex2)
>>> def add_mul(choice, *args):
... if choice == "add":
... result = 0
... for i in args:
... result = result + i
... elif choice == "mul":
... result = 1
... for i in args:
... result = result * i
... return result
...
>>>
>>> result = add_mul('add', 1,2,3,4,5)
>>> print(result)
15
>>> result = add_mul('mul', 1,2,3,4,5)
>>> print(result)
120
키워드 파라미터 kwargs
입력값이 모두 딕셔너리로 만들어져서 출력된다
>>> def print_kwargs(**kwargs):
... print(kwargs)
...
>>> print_kwargs(a=1)
{'a': 1}
>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}
함수의 결괏값은 언제나 하나이다
>>> def add_and_mul(a,b):
... return a+b, a*b
/* 튜플로 결과값 리탄 */
>>> result = add_and_mul(3,4)
result = (7, 12)
/* 하나의 튜플 값을 2개의 결괏값처럼 받고 싶다면 다음과 같이 함수를 호출 */
>>> result1, result2 = add_and_mul(3, 4)
[return의 또 다른 쓰임새]
특별한 상황일 때 함수를 빠져나가고 싶다면 return을 단독으로 써서 함수를 즉시 빠져나갈 수 있다.
함수 안에서 선언한 변수의 효력 범위
a = 1
def vartest(a):
a = a +1
vartest(a)
print(a) // 1이 출력된다
함수 안에서 새로 만든 매개변수는 함수 안에서만 사용하는 "함수만의 변수"이기 때문
함수 안에서 함수 밖의 변수를 변경하는 방법
return 사용하기
a = 1
def vartest(a):
a = a +1
return a
a = vartest(a)
print(a)
global 명령어 사용하기
a = 1
def vartest():
global a
a = a+1
vartest()
print(a)
lambda
lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할
보통 함수를 한줄로 간결하게 만들 때 사용
/* 형식 */
lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
>>> def add(a, b):
... return a+b
...
>>> result = add(3, 4)
>>> print(result)
7
>>> add = lambda a, b: a+b
>>> result = add(3, 4)
>>> print(result)
7
728x90
반응형
LIST
'Program > Python' 카테고리의 다른 글
Python 파일 읽고 쓰기 (0) | 2020.09.08 |
---|---|
Python 입출력 (0) | 2020.09.08 |
Python for문 (0) | 2020.09.08 |
Python while문 (0) | 2020.09.08 |
Python if문 (0) | 2020.09.08 |