-
함수는 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) # 출력 값 30def 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