def라는 예약어를 통해 함수의 이름을 정의하고, 특정 행동을 지정할 수 있다.
# 기본 형식
def function_name(arg1, arg2, …):
# [A] do something
return val1, val2, …
# 출력
• arg1, arg2, …: 함수의 인자, 함수 호출 시 넘겨 받는 값
• val1, val2, …: 함수의 반환값
함수의 특징 :
- def 라는 예약어로 함수를 정의한다.
- 함수명에서 대소문자를 구분한다. 같은 이름이지만 대소문자가 다르면 다른 함수로 인식한다.
- 인자는 함수명 뒤 괄호(’( )’) 사이에 쉼표(,)로 구분하여 입력한다.
- 함수 정의가 끝나면 마지막에 콜론(:)을 입력한다.
- 함수의 코드의 시작 앞에 들어쓰기(보통 공백 4개)를 한다.
- 반환값이 있는 경우 return 예약어와 함께 입력하고, 반환값이 여러 개인 경우 쉼표로 구분한다. 반환값이 없을 경우 return은 작성하지 않아도 된다.
반환값이 없는 경우 :
# 함수 정의
def say_hello():
print("Hello everyone!")
#함수 호출
say_hello()
#결과
Hello everyone!
인자와 반환값이 있는 함수 :
# [1] 함수 정의
def diff(a, b):
d = abs(a - b) #두 인자 a와 b의 절대값을 계산
#함수 반환
return d
#함수 호출
d = diff(10, 12)
print(f"두 값의 차이는 {d} 이다.")
#결과
두 값의 차이는 2 이다.
인자에 기본값이 있는 함수 :
# 함수 정의. 두 번째 인자 기본 값이 2
def square_power(a, m=2):
v = pow(a, m)
return v
# 함수 호출
print("5의 제곱:", square_power(5))
# 함수 호출
print("5의 2제곱:", square_power(5, 3))
# 결과
5의 제곱: 25
5의 2제곱: 125
- 기본값이 여러개인 경우 :
# 함수 정의. apple은 필수 입력, banana와 orange는 기본값이 있는 선택 인자
def add_fruit(apple, banana=0, orange=0):
fruit_num = apple + banana + orange
return fruit_num
print("(1) 과일 갯수:", add_fruit(10))
print("(2) 과일 갯수:", add_fruit(10, 0, 5))
print("(3) 과일 갯수:", add_fruit(10, orange=5))
print("(4) 과일 갯수:", add_fruit(10, orange=5, banana=5))
# 결과
(1) 과일 갯수: 10
(2) 과일 갯수: 15
(3) 과일 갯수: 15
(4) 과일 갯수: 20
반환 값이 여러 개인 함수 :
def fruit_count():
return 10, 11, 9 # [1] 여러개 값 반환
apple, banana, orange = fruit_count() # [2] 여러개 값을 순서대로 각 변수에 할당
print("apple:", apple)
print("banana:", banana)
print("orange:", orange)
#출력
apple: 10
banana: 11
orange: 9
※주의 반환한 값 중에 사용할 필요가 없는 경우도 변수명을 적어주어야 한다.
def fruit_count():
return 10, 11, 9
# apple 갯수 이외 다른 과일 갯수는 사용하지 않는다.
apple, _, _= fruit_count() #사용하지 않는 변수는 관습적으로 밑줄(_)를 사용한다.
print("apple count:", apple)
# 출력:
apple count: 10
return과 print 차이
↓함수 힌트, built-in함수, lambda함수는 및에 글으로
(참고 : https://wikidocs.net/254733)
5.1 함수
[TOC] 함수는 호출되어야만 실행되는 코드들의 블럭이며 파이썬의 함수는 이름과 인자들로 구성된다. 함수를 이용하면 필요한 곳에서 호출해 사용할 수 있으므로 코드의 생산성이 증…
wikidocs.net
'내일배움캠프 > Python' 카테고리의 다른 글
[Python]산점도 plt.scatter과 sns.scatterplot의 차이 (0) | 2024.12.23 |
---|---|
[Python]문자열을 한글자씩 리스트화 하기(list)/ 합치기(join), 정렬(sorted함수) (0) | 2024.12.19 |
[Python]포맷팅_ { }, f-string (0) | 2024.12.13 |
[Python]for, while 반복문 연습문제 (0) | 2024.12.11 |
[Python]리스트의 슬라이싱, 정렬 (1) | 2024.12.09 |