[Python Note] 함수
1. 함수의 기본 구조
def 함수이름(매개변수들):
수행1
수행2
return 원하는 함수 결과
- Example: a와 b를 입력하면 a*b를 출력해주는 prod라는 이름의 함수를 만들자
# 곱셈 함수 만들기
def prod(a, b):
return a * b
x = prod(2,3) # 표현1
y = prod(a=2,b=3) # 표현2
print(x,y)
6 6
- 이 때 a, b를 매개변수(parameter), 입력한 값 2,3을 인수(arguments)라고 한다.
- 함수안에서 지정된 변수는 함수 밖에서는 적용되지 않는다.
def sum(a,b):
c = a + b
return c
sum(2,3)
#print(c) # Error! name 'c' is not defined
5
1) return에 여러 결괏값을 지정할 경우
return
으로 지정한 결괏값은 언제나 하나이며, 여러 개를 입력 했을 경우 튜플(tuple)로 출력한다.
def calc(a,b):
return(a + b, a - b)
result = calc(2,3)
print(result)
(5, -1)
2) return을 여러 번 반복할 경우
- return을 여러 개 썼을 때는 맨 처음의 return만 실행된다.
def calc(a,b):
return(a + b)
return(a - b)
result = calc(2,3)
print(result)
5
3) 함수를 빠져나가고 싶을 때
- 특정한 값에 함수를 빠져나가고 싶을 때는
return
만 단독으로 쓴다.
def comment(text):
if text=="바보":
return
print("넌 정말 %s야" % text)
comment("최고")
comment("바보")
넌 정말 최고야
4) 함수의 초기값을 지정할 때
- 매개변수에 초기값을 설정할 수 있다.
def order(coffee,num=1):
if coffee=="아메리카노":
return print("%s %d 잔, %d원입니다." % (coffee, num, 4100*num))
elif coffee=="바닐라라떼":
return print("%s %d 잔, %d원입니다." % (coffee, num, 4500*num))
else:
return print("해당 음료는 sold out 되었습니다.")
result1 = order("아메리카노")
result1 = order("바닐라라떼", 3)
result2 = order("콜드브루")
아메리카노 1 잔, 4100원입니다.
바닐라라떼 3 잔, 13500원입니다.
해당 음료는 sold out 되었습니다.
2. 입력값이 없는 함수
def 함수이름():
수행1
수행2
return 원하는 함수 결과
- Example: 입력값 없이 환영 문구를 출력하는 notice라는 이름의 함수를 만들자.
def welcome():
return "안녕하세요. 000에 오신것을 환영합니다!"
a = welcome()
print(a)
안녕하세요. 000에 오신것을 환영합니다!
3. 결괏값이 없는 함수
return
으로 결괏값을 지정하지 않고print
로 원하는 결과를 볼 수 있다.- 결괏값이 없으면
None
이라고 출력된다. - Example: 'a * b = a*b'라고 출력되는 prod라는 이름의 함수를 만들자.
def prod(a,b):
print("%d * %d = %d" % (a, b, a*b))
a = prod(2,3)
print(a)
2 * 3 = 6
None
4. 입력값, 결괏값 모두 없는 함수
def welcome():
print("안녕하세요. 000에 오신것을 환영합니다!")
a = welcome()
print(a)
안녕하세요. 000에 오신것을 환영합니다!
None
5. 매개변수의 개수를 모를 때
- 매개변수 앞에 ‘*’ 기호를 붙인다.
def 함수이름(*매개변수):
수행1
수행2
return 원하는 함수 결과
- Example : ‘sum’이라고 입력하면 입력값들을 모두 더하고, ‘prod’라고 입력하면 입력값들을 모두 곱하는 calc라는 이름의 함수를 만들자.
def calc(func, *numbers):
if func=="sum":
result = 0
for i in numbers:
result = result + i
elif func=="prod":
result = 1
for j in numbers:
result = result * j
else:
print("Error! func은 sum, prod만 입력 가능합니다")
return result
calc1 = calc("sum",1,2,3,4,5)
calc2 = calc("prod",1,2,3,4,5)
print(calc1,calc2)
15 120
6. lambda 이용하기
- 함수를 생성할 때 사용하는 예약어이다.
def
를 사용할 수 없을 때 주로 쓰인다.- 함수를 간결하게 한 줄로 만들 수 있다.
- return명령어가 따로 없어도 결괏값을 출력한다.
prod = lambda a, b: a*b
result = prod(2,3)
print(result)
6
Reference
- 점프 투 파이썬, link: https://wikidocs.net/book/1
댓글남기기