함수의 기본 활용
함수 정의와 호출
함수는 재사용 가능한 코드 블록으로, 특정 작업을 수행하는 코드의 집합이다.
함수는 다음과 같이 정의(선언)하고 호출하여 사용할 수 있다.
def greet(name):
print("안녕하세요, {}님!".format(name))
greet("Isaac") # 출력: 안녕하세요, Isaac님!
매개변수와 반환값
함수는 매개변수(parameter)를 받아들이고, 실행 결과를 반환(return)할 수 있다.
매개변수는 함수에 전달되는 입력 값이고, 반환값은 함수의 결과를 돌려받은 값이다.
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 출력: 8
기본 매개변수(Default Parameters)
함수 정의 시 매개변수에 기본값을 지정할 수 있으며, 이렇게 하면 함수를 호출할 때 해당 매개변수에 값을 전달하지 않아도 기본값이 사용된다.
기본 매개변수를 사용하면 함수 호출 시 유연성을 높일 수 있다.
def greet(name, greeting="안녕하세요"):
print("{}님, {}!".format(name, greeting))
greet("Isaac") # 출력: Isaac님, 안녕하세요!
greet("Isaac", "Hello") # 출력: Isaac님, Hello!
가변 인자(Variable Arguments)
함수 정의 시 매개변수 앞에 *을 사용하면 가변 인자를 받을 수 있다.
가변 인자는 임의 개수의 인자를 튜플(tuple) 형태로 함수 내부에서 접근할 수 있게 한다.
def calculate_sum(*numbers):
total = sum(numbers)
return total
result = calculate_sum(1, 2, 3, 4, 5)
print(result) # 출력: 15
재귀 함수(Recursive Functions)
함수 내부에서 자기 자신을 호출하는 재귀 함수를 작성할 수 있다.
재귀 함수는 작업을 더 작은 조각으로 나누어 해결하는데 유용하다.
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
result = factorial(5)
print(result) # 출력: 120
람다 함수(Lambda Functions)
람다(lambda) 함수는 익명 함수로서, 간단한 기능을 갖는 함수를 한 줄로 정의할 때 사용된다.
주로 함수를 매개변수로 받거나 함수를 반환하는 고차 함수(higher-order function)에서 활용된다.
multiply = lambda x, y: x * y
result = multiply(5, 3)
print(result) # 출력: 15
내부 함수(Nested Functions)
파이썬에서는 함수 내부에서 또 다른 함수를 정의할 수 있다. 이를 내부 함수라고 하며, 외부 함수의 범위에서만 접근할 수 있다.
내부 함수는 외부 함수의 변수를 사용할 수 있으며, 주로 코드 구조를 더 깔끔하게 만들거나 함수의 특정 기능을 캡슐화할 때 사용된다.
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
add_five = outer_function(5)
result = add_five(3)
print(result) # 출력: 8
제너레이터 함수(Generator Functions)
제너레이터(generator) 함수는 이터레이터(iterator)를 생성하는 함수이다. 이터레이터는 값을 한 번에 하나씩 반환하며, 모든 값을 메모리에 저장하지 않고 필요할 때마다 생성한다.
제너레이터 함수는 yield 키워드를 사용하여 값을 반환하며, 반복문과 함께 사용될 때 유용하다.
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i in range(10):
print(next(fib))
모듈의 기본 활용
2.1. 모듈 가져오기
모듈은 파이썬 코드를 담고 있는 파일이며, 다른 스크립트에서 재사용할 수 있는 코드의 집합이다.
모듈을 가져오기(import)하여 사용할 수 있다.
import math
result = math.sqrt(16)
print(result) # 출력: 4.0
모듈의 이름 변경하기
모듈의 이름이 길거나 충돌이 발생할 경우, as 키워드를 사용하여 모듈의 이름을 변경할 수 있다.
import math as m
result = m.sqrt(16)
print(result) # 출력: 4.0
모듈의 일부 가져오기
모듈에서 필요한 함수 또는 클래스만 가져와서 사용할 수 있으며, 이를 통해 모듈 전체를 가져오는 대신 필요한 부분만 선택적으로 가져와 메모리를 절약할 수 있다.
from math import sqrt
result = sqrt(16)
print(result) # 출력: 4.0
모듈의 모든 요소 가져오기
모듈에 포함된 모든 함수, 클래스, 변수 등을 가져와 사용할 수 있으며, 이를 통해 모듈 내의 모든 요소를 직접 사용할 수 있다.
from math import *
result = sqrt(16)
print(result) # 출력: 4.0
모듈의 위치 확인하기
모듈의 위치를 확인할 수 있는 방법이 있다.
__file__ 속성을 사용하여 모듈 파일의 경로를 얻을 수 있으며, 이를 통해 모듈이 어디에 위치해 있는지 알 수 있다.
import math
print(math.__file__)
사용자 정의 모듈 만들기
파이썬에서는 사용자가 직접 함수, 클래스, 변수 등을 담은 모듈을 만들어 다른 스크립트에서 재사용할 수 있다.
# mymodule.py
def greet(name):
print(f"Hello, {name}!")
# main.py
from mymodule import greet
greet("Isaac") # 출력: Hello, Isaac!