본문 바로가기
파이썬기초(Python Basic)

파이썬에서 함수란 무엇인가?

by 친절한에릭 2023. 4. 22.

파이썬에서 함수란?

함수의 정의

함수란, 입력된 값을 특정한 처리를 거쳐 결과를 반환하는 독립적인 코드 블록입니다. 파이썬에서는 다양한 함수들이 제공되며 사용자가 직접 함수를 만들어 사용할 수도 있습니다.

함수의 특징

함수는 코드의 재사용성을 높여주고, 구조화된 프로그래밍을 가능하게 합니다. 또한, 유지 보수가 용이하며 가독성을 높여주는 장점이 있습니다.

 

함수의 생성

파이썬 함수 정의

파이썬에서 함수를 생성하기 위해서는 def 키워드를 사용하여 함수의 이름과 매개변수를 정의해야 합니다. 예를 들어, 두 수를 더하는 함수를 생성하려면 다음과 같이 작성할 수 있습니다.

 

def add(a, b):
    result = a + b
    return result

 

매개변수와 인자

기본 매개변수

함수를 생성할 때, 매개변수에 기본값을 설정할 수 있습니다. 기본값이 설정된 매개변수는 함수를 호출할 때 인자를 생략할 수 있습니다.

 

def greet(name, greeting="안녕하세요"):
    print(f"{greeting}, {name}님!")

 

가변 매개변수

가변 매개변수는 함수에 여러 개의 인자를 전달할 수 있도록 해줍니다. 가변 매개변수는 *****를 사용하여 정의할 수 있습니다.

 

def add_numbers(*numbers):
    result = 0
    for number in numbers:
        result += number
    return result

 

키워드 매개변수

키워드 매개변수는 함수에 인자를 이름으로 전달할 수 있도록 해줍니다. 키워드 매개변수는 ******를 사용하여 정의할 수 있습니다.

 

def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

 

함수의 반환

return 문

함수에서 값을 반환하려면 return 문을 사용해야 합니다. return 문은 함수의 실행을 종료하고 호출한 곳으로 값을 반환합니다.

 

def add(a, b):
    result = a + b
    return result

 

반환값 사용법

함수의 반환값은 변수에 저장하거나 다른 함수의 인자로 사용할 수 있습니다.

 

result = add(3, 4)
print(result)  # 결과: 7

람다 함수

람다 함수 정의

람다 함수는 이름 없이 간단한 함수를 생성할 수 있는 기능입니다. lambda 키워드를 사용하여 정의할 수 있습니다.

 

add = lambda a, b: a + b

 

람다 함수 사용법

람다 함수는 일반 함수와 같이 사용할 수 있습니다. 다만, 간단한 연산이나 처리를 수행하는 경우에 주로 사용됩니다.

 

result = add(3, 4)
print(result)  # 결과: 7

재귀 함수

재귀 함수 정의

재귀 함수란 함수 내부에서 자기 자신을 호출하는 함수를 의미합니다. 예를 들어, 팩토리얼을 구하는 함수를 작성해보겠습니다.

 

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

 

재귀 함수 사용법

재귀 함수는 일반 함수와 같이 사용할 수 있습니다. 다만, 종료 조건이 명확해야하며, 작성이 잘못되면 무한 루프에 빠질 수 있으므로 주의가 필요합니다.

 

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

 

내장 함수

파이썬 내장 함수

파이썬에서는 여러가지 유용한 함수들을 기본적으로 제공합니다. 이러한 함수들을 내장 함수라고 합니다.

일반 내장 함수

  • len(): 시퀀스의 길이를 반환합니다.
  • sum(): 시퀀스의 모든 요소의 합을 반환합니다.
  • sorted(): 시퀀스를 정렬한 새로운 리스트를 반환합니다.

수학 관련 함수

  • abs(): 절대값을 반환합니다.
  • round(): 반올림 값을 반환합니다.
  • max(): 시퀀스의 최댓값을 반환합니다.
  • min(): 시퀀스의 최솟값을 반환합니다.

문자열 관련 함수

  • upper(): 문자열을 대문자로 변환합니다.
  • lower(): 문자열을 소문자로 변환합니다.
  • strip(): 문자열의 양쪽 공백을 제거합니다.

리스트 관련 함수

  • append(): 리스트의 마지막에 요소를 추가합니다.
  • remove(): 리스트에서 첫 번째로 나오는 특정 값을

사용자 정의 함수

사용자 정의 함수 작성

파이썬에서 사용자가 직접 함수를 작성할 수 있습니다. 예를 들어, 소셜 미디어에서 이모티콘을 생성하는 함수를 만들어보겠습니다.

 

def create_emoticon(face, eyes, mouth):
    emoticon = f"{face}{eyes}{mouth}{eyes}{face}"
    return emoticon

 

사용자 정의 함수 활용

이제 생성한 이모티콘 함수를 사용하여 다양한 이모티콘을 만들어보겠습니다.

 

emoticon1 = create_emoticon("(", "o", "_")
emoticon2 = create_emoticon("[", "^", "-")
emoticon3 = create_emoticon("{", "*", "O")

print(emoticon1)  # 결과: (o_o)
print(emoticon2)  # 결과: [^-^]
print(emoticon3)  # 결과: {*O*}

 

함수의 활용 사례

영화 추천 함수 작성

파이썬에서 사용자가 직접 함수를 작성할 수 있습니다. 예를 들어, 영화 장르와 관람객의 기분에 따라 영화를 추천해주는 함수를 만들어보겠습니다.

 

def recommend_movie(genre, mood):
    if genre == "액션" and mood == "기분이 좋다":
        return "어벤져스"
    elif genre == "로맨스" and mood == "기분이 좋다":
        return "노트북"
    elif genre == "액션" and mood == "기분이 나쁘다":
        return "매트릭스"
    elif genre == "로맨스" and mood == "기분이 나쁘다":
        return "타이타닉"
    else:
        return "검색 결과가 없습니다."

 

영화 추천 함수 활용

이제 생성한 영화 추천 함수를 사용하여 다양한 조건에 따른 영화를 추천 받아보겠습니다.

 

recommended_movie1 = recommend_movie("액션", "기분이 좋다")
recommended_movie2 = recommend_movie("로맨스", "기분이 나쁘다")
recommended_movie3 = recommend_movie("스릴러", "기분이 좋다")

print(recommended_movie1)  # 결과: 어벤져스
print(recommended_movie2)  # 결과: 타이타닉
print(recommended_movie3)  # 결과: 검색 결과가 없습니다.

 

파일 처리 함수 작성

파일 처리 작업을 수행하는 함수를 작성해보겠습니다. 예를 들어, 텍스트 파일에서 특정 단어의 빈도를 세는 함수를 만들어보겠습니다.

 

def count_word_frequency(file_path, target_word):
    try:
        with open(file_path, 'r', encoding='utf-8') as file:
            text = file.read()
            word_list = text.split()
            count = word_list.count(target_word)
            return count
    except FileNotFoundError:
        return "파일을 찾을 수 없습니다."

 

파일 처리 함수 활용

이제 작성한 파일 처리 함수를 사용하여 텍스트 파일에서 특정 단어의 빈도를 확인해보겠습니다.

 

file_path = "example.txt"
target_word = "파이썬"
frequency = count_word_frequency(file_path, target_word)

print(f"'{target_word}' 단어의 빈도: {frequency}")

 

함수의 에러 처리

예외 처리를 사용한 함수 작성

파이썬에서 함수를 작성할 때, 예외 처리를 사용하여 에러 상황에 대응할 수 있습니다. 예를 들어, 분수를 입력받아 소수로 변환하는 함수에서 분모가 0인 경우를 처리해보겠습니다.

 

def fraction_to_decimal(numerator, denominator):
    try:
        result = numerator / denominator
    except ZeroDivisionError:
        return "분모가 0이 될 수 없습니다."
    else:
        return result

 

에러 처리가 적용된 함수 활용

이제 에러 처리를 적용한 함수를 사용하여 정상적인 경우와 에러가 발생할 경우의 결과를 확인해보겠습니다.

 

result1 = fraction_to_decimal(3, 4)
result2 = fraction_to_decimal(1, 0)

print(result1)  # 결과: 0.75
print(result2)  # 결과: 분모가 0이 될 수 없습니다.

 

함수의 유용성

함수 작성의 장점

함수를 작성함으로써 코드의 재사용성을 높일 수 있으며, 프로그램의 구조를 개선할 수 있습니다. 또한, 함수를 사용하면 코드의 가독성이 높아지고 유지 보수가 용이해집니다.

결론

이처럼 파이썬 함수를 다양하게 활용하여 여러 가지 문제를 해결할 수 있습니다.  파이썬 함수는 코드의 재사용성을 높여주며, 구조화된 프로그래밍을 가능하게 합니다. 파이썬에서는 다양한 함수들이 제공되며 사용자가 직접 함수를 만들어 사용할 수도 있습니다. 이를 통해 프로그램 개발의 효율성을 높일 수 있습니다.

 

자주 묻는 질문

  1. 파이썬 함수란 무엇인가요?
    • 파이썬 함수는 입력된 값을 특정한 처리를 거쳐 결과를 반환하는 독립적인 코드 블록입니다.
  2. 함수의 장점은 무엇인가요?
    • 함수는 코드의 재사용성을 높여주고, 구조화된 프로그래밍을 가능하게 하며, 유지 보수가 용이하고 가독성을 높여주는 장점이 있습니다.
  3. 람다 함수란 무엇인가요?
    • 람다 함수는 이름 없이 간단한 함수를 생성할 수 있는 기능으로, lambda 키워드를 사용하여 정의합니다.
  4. 내장 함수와 사용자 정의 함수의 차이점은 무엇인가요?
    • 내장 함수는 파이썬에서 기본적으로 제공되는 함수들이며, 사용자 정의 함수는 사용자가 직접 작성한 함수입니다.
  5. 가변 매개변수와 키워드 매개변수의 차이점은 무엇인가요?
  • 가변 매개변수는 함수에 여러 개의 인자를 전달할 수 있도록 해주는 기능으로, **``**를 사용하여 정의합니다. 반면, 키워드 매개변수는 함수에 인자를 이름으로 전달할 수 있도록 해주는 기능으로, *****를 사용하여 정의합니다.

 

파이썬 함수 정의 썸네일

댓글