내일배움캠프/Python

[Python] 함수

dydatablog 2024. 12. 13. 16:41

def라는 예약어를 통해 함수의 이름을 정의하고, 특정 행동을 지정할 수 있다.

# 기본 형식
def function_name(arg1, arg2, …):
    # [A] do something

    return val1, val2, …

# 출력
• arg1, arg2, …: 함수의 인자, 함수 호출 시 넘겨 받는 값
• val1, val2, …: 함수의 반환값

 

함수의 특징 : 

  1. def 라는 예약어로 함수를 정의한다.
  2. 함수명에서 대소문자를 구분한다. 같은 이름이지만 대소문자가 다르면 다른 함수로 인식한다.
  3. 인자는 함수명 뒤 괄호(’( )’) 사이에 쉼표(,)로 구분하여 입력한다.
  4. 함수 정의가 끝나면 마지막에 콜론(:)을 입력한다.
  5. 함수의 코드의 시작 앞에 들어쓰기(보통 공백 4개)를 한다.
  6. 반환값이 있는 경우 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