본문 바로가기

Python

[Python] 함수

728x90

함수란?

함수(Function)는 코드의 재사용성과 가독성을 높이기 위해 사용되는 코드의 집합입니다. 특정 작업을 수행하는 코드 블록을 하나의 이름으로 묶어두고, 필요할 때마다 호출하여 사용할 수 있습니다. 함수를 사용하면 동일한 작업을 반복적으로 수행할 때 코드의 중복을 줄이고, 유지보수가 용이해집니다.

함수 선언

함수를 선언하는 방법은 다음과 같습니다:

def 함수명(매개변수):
    로직...
    return 반환값

 

  • def 키워드를 사용하여 함수를 정의합니다.
  • 함수명은 함수를 호출할 때 사용할 이름입니다.
  • 매개변수는 함수에 입력으로 전달될 값들을 받는 변수입니다.
  • 로직은 함수가 수행할 작업을 정의합니다.
  • return 문을 사용하여 함수의 결과를 반환합니다. 반환값이 없을 경우 return 문을 생략하거나, return None을 사용할 수 있습니다.

 

 

함수 호출 형식

함수를 호출하는 방법은 다음과 같습니다:

함수명(인자)

 

 

  • 인자는 함수 호출 시 전달되는 실제 값입니다.
  • 함수가 호출되면, 제어의 흐름이 함수 정의로 이동하여 로직이 실행됩니다.

 

함수 호출 시 동작

  • 전달값이 인자로 전달: 함수 호출 시 인자(전달값)가 함수 정의의 매개변수로 전달됩니다.
  • 제어의 흐름 이동: 함수가 호출되면 제어의 흐름이 함수 정의 부분으로 이동하여 코드가 실행됩니다.
  • 함수 반환 시: 함수가 return 문을 만나면, 제어의 흐름이 함수 호출 부분으로 복귀합니다. 이때 함수의 반환값이 호출 위치로 전달됩니다.

함수 예제: 소수 구하기

다음은 주어진 숫자가 소수인지 여부를 확인하는 함수의 예제입니다:

def isPrime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

 

isPrime 함수는 숫자 n이 소수인지 확인하여 True 또는 False를 반환합니다.

 

 

매개변수에 기본값 넣기

함수를 선언할 때 매개변수에 기본값을 설정할 수 있습니다. 기본값이 있는 매개변수는 함수 호출 시 인자를 생략할 수 있으며, 생략된 경우 기본값이 사용됩니다.

def greet(name="Guest"):
    print(f"Hello, {name}!")

 

greet()을 호출하면 name 매개변수는 "Guest"라는 기본값을 사용하여 "Hello, Guest!"를 출력합니다.

 

 

키워드 인자와 위치 인자

함수 호출 시 인자를 전달하는 방법에는 위치 인자(Positional Arguments)와 키워드 인자(Keyword Arguments)가 있습니다.

  • 위치 인자: 매개변수의 순서에 따라 인자를 전달합니다.
  • 키워드 인자: 매개변수의 이름을 지정하여 인자를 전달합니다.
def introduce(name, age, city):
    print(f"My name is {name}, I'm {age} years old, and I live in {city}.")

# 위치 인자 사용
introduce("Alice", 30, "New York")

# 키워드 인자 사용
introduce(name="Bob", city="Los Angeles", age=25)

 

  • 위치 인자는 함수 정의에서 매개변수의 순서에 따라 값을 전달합니다.
  • 키워드 인자는 매개변수 이름을 명시하여 값을 전달하므로, 순서에 관계없이 인자를 지정할 수 있습니다.

 

정리

  • 함수는 코드의 재사용성을 높이고, 특정 작업을 독립적으로 처리할 수 있도록 해줍니다.
  • 함수는 def 키워드를 사용해 선언하며, return 문을 통해 결과를 반환합니다.
  • 함수 호출 시 인자를 전달하여 제어의 흐름을 함수로 이동시키고, 반환 후 다시 호출 위치로 복귀합니다.
  • 함수의 매개변수에는 기본값을 설정할 수 있으며, 위치 인자와 키워드 인자를 통해 인자를 전달할 수 있습니다.

 

728x90

'Python' 카테고리의 다른 글

[Python] Numpy 데이터 합치기, 쪼개기  (0) 2024.10.20
[Python] Numpy 인덱싱, 슬라이싱  (0) 2024.10.20
[Python] 넘파이(Numpy) 배열  (6) 2024.10.13
[Python] 리스트  (0) 2024.09.03
[Python] 반복문  (0) 2024.08.27