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 |