Python/이론

101. [Python] 프로그래밍 기본 사항 : FUNCTIONS (함수)

천재단미 2025. 1. 21. 11:02
728x90
반응형

 

 

 FUNCTIONS (함수)

 

1. 구성요소

  1. def: 함수를 정의한다는 키워드.
  2. 함수이름: 호출할 때 사용할 이름. (예: my_function)
  3. 매개변수: 함수가 처리할 입력값. (없을 수도 있음)
  4. return: 함수 실행 결과를 반환.

 

 

2. 함수의 실행 순서

  1. 함수 정의: 메모리에 저장.
  2. 함수 호출: 정의된 코드를 실행.
  3. 매개변수 전달: 입력값을 처리.
  4. 결과 반환: 호출된 위치로 반환.

 

 

 

 

3. 함수의 반환값과 실행 예제

3-1. 반환값이 없는 함수

  • return이 없으면 결과를 반환하지 않고, 내부 로직만 실행.
def say_hi():
    print("안녕하세요")

say_hi()
# 출력: 안녕하세요

 

 

 

 

 

4.  파라미터가 있는 경우

4-1.  파라미터가 하나인 함수

  • 파라미터로 숫자 하나를 받아 해당 숫자의 제곱을 반환하는 예제:
def squared(num): 
	return num ** 2 
    
    print(squared(4)) # 출력: 16

 

 

 

 

4-2. 파라미터가 여러 개인 함수

  • 파라미터 두 개를 받아 계산 후 결과를 반환하는 예제:
def add_numbers(a, b): 
	return a + b 
    
print(add_numbers(3, 7)) # 출력: 10
def squared(num): 
	return num ** 2 
    
    print(squared(4)) # 출력: 16

 

 

 

 

 

 

5.  반환값이 있는 함수

  • return 문을 사용해 결과값을 반환합니다.
  • Python에서는 여러 값을 **튜플(tuple)**로 묶어 반환할 수 있습니다.
def squared(num):
    return num ** 2

result = squared(3)
print(result)
# 출력: 9

 

 

 

5-1.  다중 반환값

  • 여러 값을 반환할 수도 있습니다.
def calc(num1, num2):
    return num1 + num2, num1 * num2

add, mul = calc(3, 5)
print(add, mul)
# 출력: 8, 15

 

 

6.  기본 매개변수(Default Parameters)

  • 함수의 파라미터에 기본값을 설정하면, 값을 넘기지 않았을 때 기본값이 사용됩니다.
def introduce(name="홍길동", age=25):
    print(f"제 이름은 {name}이고 나이는 {age}살입니다.")

introduce()  # 출력: 제 이름은 홍길동이고 나이는 25살입니다.
introduce(name="김나나", age=30)  # 출력: 제 이름은 김나나이고 나이는 30살입니다.

 

 

 

 

7.  Lambda 표현식

  • 익명 함수로 불리며, 한 줄로 간단한 연산을 표현할 때 유용.
  • 일반 함수와 달리 이름이 없습니다.
  • 주로 filter(), map(), reduce() 등과 사용됩니다.

Lambda 문법:

lambda 매개변수: 반환값

 

예제:

square = lambda x: x ** 2
print(square(4))
# 출력: 16

add = lambda x, y: x + y
print(add(3, 5))
# 출력: 8

 

참고

: Lambda는 가독성이 떨어질 수 있어 간단한 경우에만 사용 권장.

 

 

8. 함수 작성 팁

  1. 명확한 함수 이름: 함수 이름은 동작을 잘 설명해야 합니다.
  2. 짧고 간결한 함수: 한 함수는 하나의 역할에 집중해야 합니다.
  3. 문서화: Docstring을 사용해 함수의 동작과 입력/출력 설명.
  4. 테스트: 다양한 입력값으로 함수를 테스트하여 안정성을 확보하세요.
728x90
반응형
home top bottom
}