Programming/Python

Python 함수와 모듈의 기본 활용

Isaac S. Lee 2023. 6. 11. 14:56

함수의 기본 활용

함수 정의와 호출

함수는 재사용 가능한 코드 블록으로, 특정 작업을 수행하는 코드의 집합이다.

함수는 다음과 같이 정의(선언)하고 호출하여 사용할 수 있다.

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!