본문 바로가기

파이썬 : 함수와 모듈 예제와 설명

발견의끝 2024. 12. 2.

 

함수 정의 및 호출 (def)

함수는 프로그래밍에서 특정 작업을 수행하는 코드를 정의하고 재사용하기 위한 기본 단위입니다. def 키워드를 사용하여 함수를 정의하며, 함수의 이름과 필요한 매개변수를 명시합니다. 함수는 가독성을 높이고 코드의 중복을 줄이며 유지보수를 용이하게 만듭니다.

# 함수 정의
def greet():
    print("Hello, World!")

# 함수 호출
greet()  # 결과: Hello, World!

위 예제는 greet라는 단순한 함수를 정의하고 호출하는 방법을 보여줍니다. 호출 시 함수 내부의 코드가 실행되어 출력 결과를 생성합니다.

함수를 정의하면 프로그램 어디에서든 호출할 수 있어 코드가 더욱 체계적으로 구성됩니다.


매개변수와 반환값

함수는 매개변수를 통해 외부 데이터를 입력받아 작업을 수행하고, 결과를 반환할 수 있습니다. 매개변수는 함수가 보다 유연하게 동작하도록 도와줍니다.

# 매개변수와 반환값이 있는 함수
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 결과: 8

위의 add 함수는 두 개의 매개변수를 받아 값을 더한 후 반환합니다. 반환값은 함수 호출자가 사용할 수 있으며, 연산 결과를 다양한 방식으로 처리할 수 있게 합니다. 매개변수와 반환값은 함수의 활용 범위를 넓히는 중요한 요소입니다.


재귀 함수

재귀 함수는 함수가 자기 자신을 호출하는 특수한 유형의 함수입니다. 이를 사용하면 반복적인 문제를 간결하고 우아하게 해결할 수 있지만, 적절한 종료 조건이 없으면 무한 재귀에 빠질 위험이 있습니다.

# 재귀 함수로 팩토리얼 계산
def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # 결과: 120

위 코드는 재귀 함수를 사용하여 5! (5팩토리얼)을 계산합니다. 종료 조건인 if n == 1이 없었다면 함수는 무한히 호출되었을 것입니다. 따라서 재귀 함수 작성 시 항상 종료 조건을 명확히 정의해야 합니다.


모듈과 패키지 사용법 (import)

모듈은 특정 기능이 구현된 파이썬 파일입니다. import 키워드를 사용하여 모듈을 불러오면, 미리 작성된 코드와 기능을 활용할 수 있습니다. 이를 통해 코드의 재사용성을 높이고 생산성을 향상시킬 수 있습니다.

import math

# math 모듈의 sqrt 함수 사용
print(math.sqrt(16))  # 결과: 4.0

위 예제는 파이썬 표준 라이브러리 중 하나인 math 모듈을 가져와, 제곱근을 계산하는 방법을 보여줍니다. 외부 라이브러리나 사용자 정의 모듈도 동일한 방식으로 가져올 수 있습니다.


쉽게 이해할 수 있는 예제 10개

두 수의 합을 계산하는 함수

def add_numbers(a, b): 
	return a + b 
print(add_numbers(10, 20)) 
# 결과: 30

문자열을 출력하는 함수

def say_hello(name):
    print(f"Hello, {name}!")

say_hello("Alice")
# 결과: Hello, Alice!

리스트의 합을 구하는 함수

def sum_list(numbers):
    return sum(numbers)

# 함수 사용 예시
print(sum_list([1, 2, 3, 4])) # 결과: 10

짝수인지 홀수인지 확인하는 함수

def is_even(number):
    if number % 2 == 0:
        return True
    return False

print(is_even(4))  # 결과: True

문자열의 길이를 반환하는 함수

def string_length(s):
    return len(s)

print(string_length("hello")) # 결과: 5

리스트에서 최대값 찾기

def find_max(numbers):
    return max(numbers)

# 함수 사용 예시
print(find_max([3, 7, 2, 8]))  # 결과: 8

숫자를 제곱하는 함수

def square(n):
    return n * n

# 함수 사용 예시
print(square(5))  # 결과: 25

리스트의 요소를 역순으로 출력하는 함수

def reverse_list(lst):
    return lst[::-1]

# 함수 사용 예시
print(reverse_list([1, 2, 3])) # 결과: [3, 2, 1]

모듈을 이용한 랜덤 숫자 생성

import random

def random_number():
    return random.randint(1, 100)

print(random_number())  # 결과: 1에서 100 사이의 임의의 정수

재귀 함수로 피보나치 수열 계산

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(6))  # 결과: 8

 

두 수를 곱하는 함수

def multiply(a, b): 
	return a * b

리스트의 평균을 구하는 함수

def average(numbers):
    return sum(numbers) / len(numbers)

문자열을 거꾸로 반환하는 함수

def reverse_string(s):
    return s[::-1]

세 수 중 가장 큰 값을 반환하는 함수

def max_of_three(a, b, c):
    return max(a, b, c)

# 함수 사용 예시
print(max_of_three(10, 5, 8))  # 결과: 10
print(max_of_three(3, 7, 4))   # 결과: 7

문자열에서 모음의 개수를 세는 함수

def count_vowels(s):
    return sum(1 for char in s if char.lower() in 'aeiou')

# 사용 예시
text = "Hello World"
print(count_vowels(text))  # 결과: 3

리스트에서 특정 값의 개수를 세는 함수

def count_occurrences(lst, value):
    return lst.count(value)

# 사용 예시
numbers = [1, 2, 2, 3, 2, 4]
print(count_occurrences(numbers, 2))  # 결과: 3

정수가 양수인지 음수인지 판별하는 함수

def is_positive(n):
    return n > 0

두 문자열이 같은지 확인하는 함수

def are_equal(str1, str2):
    return str1 == str2

# 사용 예시
print(are_equal("hello", "hello"))  # True
print(are_equal("hello", "world"))  # False

주어진 숫자 리스트의 곱을 반환하는 함수

def multiply_list(numbers):
    result = 1  # 곱셈을 위해 초기값을 1로 설정
    for num in numbers:
        result *= num  # 각 숫자를 결과값에 곱함
    return result

# 테스트
print(multiply_list([1, 2, 3, 4]))  # 출력: 24
print(multiply_list([5, 6, 7]))     # 출력: 210

숫자가 짝수면 "짝수", 홀수면 "홀수"를 반환하는 함수

def check_odd_or_even(number):
    if number % 2 == 0:
        return "짝수"
    else:
        return "홀수"

# 테스트
print(check_odd_or_even(4))  # 출력: 짝수
print(check_odd_or_even(7))  # 출력: 홀수

댓글