-
함수는 def에 함수 이름을 지정하고 ()(괄호)와 :(콜론)을 붙인 뒤 다음 줄에 원하는 코드를 작성
> 반드시 들여쓰기
def는 정의하다의 define
함수 작성 및 호출
def hello(): print('Hello, world!') hello()
함수 결과 반환
def add(a, b): """이 함수는...""" return a + b x = add(10, 20) print(x) print(add.__doc__)
add 함수에 "(큰따옴표) 세 개로 독스트링(설명) 추가
> 함수를 호출해도 독스트링은 출력되지 않음
함수의 __doc__으로 독스트링 출력
def add(a, b): result = a + b return result x = add(10, 20) print(x) # 출력 값 30
def add(): return 'hello' x = add() print(x) # 출력 값 hello
>>> def not_ten(a): ... if a == 10: ... return # 변수 a 값이 10이면 반환(빈값) ... print(a, '입니다.', sep='') ... >>> not_ten(5) 5입니다. >>> not_ten(10) >>>
return으로 함수 중간에서 빠져나오기
함수에서 값을 여러 개 반환
def add_sub(a, b): return a + b, a - b x, y = add_sub(10, 20) print(x) print(y) z = add_sub(100, 200) print(z) # 출력 값 30 -10 (300, -100)
return으로 값을 여러 개 반환하면 튜플이 반환됨
결과를 변수 한 개에 저장해 출력해 보면 튜플이 반환
함수에서 값 여러 개 직접 반환
def one_two(): return 10, 20 x, y = one_two() print(x, y) # 출력 값 10 20 def one_two(): return (1, 2) x, y = one_two() print(x, y) # 출력 값 1 2
여러 개를 직접 반환할 때는 return에 튜플을 지정
괄호 없이 콤마로 구분하면 튜플이 되므로 튜플 1, 2는 튜플 (1, 2)와 같다
return 1, 2도 return (1, 2)와 같음
리스트도 직접 반환해도 됨 / 여러 개 저장 가능
함수의 호출 과정
def mul(a, b): c = a * b return c def add(a, b): c = a + b print(c) d = mul(a, b) print(d) x = 10 y = 20 add(x, y) # 출력 값 30 200
연습 문제 예제
29.7번 연습 문제: 몫과 나머지를 구하는 함수 만들기 x = 10 y = 3 def get_quotient_remainder(a, b): return a // b, a % b quotient, remainder = get_quotient_remainder(x, y) print( '몫: {0}, 나머지: {1}'.format(quotient, remainder) ) # 실행 결과 몫: 3, 나머지: 1 # 29.8번 심사 문제: 사칙 연산 함수 만들기 # 표준 입력으로 숫자 두 개가 입력됩니다. 다음 소스 코드를 완성하여 두 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈의 결과가 출력되게 만드세요. # 이때 나눗셈의 결과는 실수라야 합니다. x, y = map( int, input().split() ) def clac(x, y): return x + y, x - y, x * y, x / y a, s, m, d = clac(x, y) print( '덧셈: {0}, 뺄셈: {1}, 곱셈: {2}, 나눗셈: {3}'.format(a, s, m, d) ) # 표준 입력 10 20 # 실행 결과 덧셈: 30, 뺄셈: -10, 곱셈: 200, 나눗셈: 0.5 # 표준 입력 40 8 # 실행 결과 덧셈: 48, 뺄셈: 32, 곱셈: 320, 나눗셈: 5.0
연습 문제 예제 2
# 다음과 같이 표현되도록 코드를 작성하시오. # 덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: 1 # 첫 번째 값을 입력: 10 # 두 번째 값을 입력: 20 # ---------------------- # 입력 값: 10, 20 # 결과 값: 10 + 20 = 30 # ---------------------- choice = int(input('덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: ')) x = int(input('첫 번째 값을 입력: ')) y = int(input('두 번째 값을 입력: ')) print() print('----------------------') def clac(x, y): print('입력 값:', x, ',', y) if choice == 1: result = x + y return print('결과 값: {0} + {1} = {2}'.format(x, y, x + y)) elif choice == 2: result = x - y return print('결과 값: {0} - {1} = {2}'.format(x, y, x - y)) elif choice == 3: result = x * y return print('결과 값: {0} x {1} = {2}'.format(x, y, x * y)) elif choice == 4: result = x / y return print('결과 값: {0} ÷ {1} = {2}'.format(x, y, x / y)) else: pass return result clac(x, y) print('----------------------') # 실행 결과 덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: 1 첫 번째 값을 입력: 10 두 번째 값을 입력: 20 ---------------------- 입력 값: 10 , 20 결과 값: 10 + 20 = 30 ----------------------
'Python' 카테고리의 다른 글
재귀호출 (0) 2023.10.17 위치 인수와 키워드 인수 사용 (0) 2023.10.16 회문 판별과 N-gram 만들기 (0) 2023.10.11 file (0) 2023.10.11 set (0) 2023.10.11