6. 함수
6.1 함수의 정의
일정한 작업을 수행하는 코드 블록
6.2 함수의 장점
6.2.1 반복적인 코드를 없애 주어 코드의 길이를 짧게 만들어 준다.
6.2.2 프로그램의 유지보수를 쉽게 만들어 준다.
6.3 함수의 구조
def 함수명(입력 매개변수):
<수행할 문장 1>
<수행할 문장 2>
return 반환 값
함수의 몸체(body)에는 최소한 한 개 이상의 문장이 필요함
그러므로, 아무런 내용이 없는 함수를 만들 때는 pass
키워드를 적어주어야 함
두 개 이상의 값을 동시에 반환할 수 있다.
6.4 함수의 종류
6.4.1 내장함수
파이썬에서 미리 만들어놓은 함수
6.4.2 사용자 정의 함수
우리가 직접 만들어서 사용하는 함수
6.5 실습 예제(내장 함수)
# 절대값
print(abs(-3))
# all 함수, 모든 요소가 참이면 True, 아니면 False
print(all([1, 2, 3]))
print(all([1, 2, 3, 0]))
# any 함수, 하나라도 참이면 True, 모두 거짓이면 False
print(any([0, 1, 2]))
print(any([0, ""]))
print(dir({ "1": "a" }))
divmod
# divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플 형태로 리턴
print(divmod(7, 3))
print(divmod(1.3, 0.2))
enumerate()
enumerate(): 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력받아 인덱스 값을 포함하는 enumerate 객체를 리턴
for i, num in enumerate([10, 20, 30, 40, 50]):
print(i, num)
....
# 아래와 같이 입력매개변수의 값이 없을 경우에 None을 활용하여 체크할 수 있음
def hello2(name=None):
if name==None:
print('이름을 입력하세요')
return
print('Hello, ', name)
hello2()
hello2('kim')
이름을 입력하세요
Hello, kim
# 가변사이즈 매개변수
# 여러 개의 입력값을 받는 함수 만들기
# *변수 → 입력값들을 모두 모아서 튜플로 만들어준다.
def sum(*args):
print(args)
result = 0
for i in args:
result = result + i
return result
result = sum(1, 2, 3)
print(result)
result = sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(result)
(1, 2, 3)
6
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
55
order("medium", '파인애플', '버섯', '토마토')
large 피자를 주문하셨습니다.
토핑: 더블크러스트,
medium 피자를 주문하셨습니다.
토핑: 파인애플, 버섯, 토마토
# 함수의 리턴값은 여러개가 될 수 있다.
def a():
return 1, 2, 3, 4, 5
a, b, c, d, e = a()
print(a, b, c, d, e)
1 2 3 4 5
# 튜플을 리턴하는 함수
def sum_and_mul(a, b):
return a+b, a*b
result = sum_and_mul(3, 4)
print(result)
# 하나의 튜플값을 2개의 결과값으로 받고 싶을 경우
sum, mul = sum_and_mul(3, 4)
print("합: ", sum)
print("곱: ", mul)
(7, 12)
합: 7
곱: 12