본문 바로가기
프로그래밍/PYTHON

파이썬 입출력 : 함수의 마법같은 세계로 여행을 떠나요

by AutoTechGuru 2023. 7. 19.
SMALL

코딩이 어려워 고민하고 있지 않으신가요? 걱정 마세요, 우리 함께 학습하면서 코딩을 쉽게 이해할 수 있도록 도와드리겠습니다. 오늘은 매우 중요한 주제인 함수에 대해 배워볼 것입니다. 함수를 이해하면 마치 마법사가 주문을 외치는 것처럼 코딩을 편하게 할 수 있답니다!

 

함수란 무엇인가?

함수는 동일한 작업을 반복 수행할 때 사용하는 코드 묶음입니다. 이를테면 "안녕하세요"라는 인사말을 출력하는 코드를 반복해서 사용하고 싶다면, 이 작업을 함수로 만들어 사용할 수 있습니다.

 

def say_hello():
    print("안녕하세요")

say_hello()
# 출력: 안녕하세요

함수를 사용하는 이유는 무엇일까?

함수를 사용하는 가장 큰 이유는 코드의 재사용성입니다. 한 번 만든 함수는 필요할 때마다 호출하여 사용할 수 있으므로, 반복적인 작업을 편리하게 수행할 수 있습니다. 또한, 함수를 사용하면 코드가 보다 가독성 있고 관리하기 쉬워집니다.

 

파이썬 함수의 구조

파이썬에서 함수를 만드는 기본 구조는 다음과 같습니다.

 

def 함수명(매개변수):
    # 함수가 수행할 코드
    return 결과값

매개변수와 인수

함수를 만들 때 괄호 안에 들어가는 값을 매개변수라고 합니다. 이는 함수가 동작하는데 필요한 값을 받아오는 역할을 합니다. 반면 함수를 사용(호출)할 때 전달하는 값을 인수라고 합니다.

 

def add(a, b):  # a, b는 매개변수
    return a + b

print(add(1, 2))  # 1, 2는 인수
# 출력: 3

입력값과 리턴값에 따른 함수의 형태

함수는 입력값과 리턴값에 따라 4가지 형태로 구분될 수 있습니다.

 

  • 일반적인 함수: 입력값이 있고 결괏값을 리턴하는 함수입니다.
def add(a, b):
return a + b


print(add(3, 4)) # 출력: 7
  • 입력값이 없는 함수: 입력값 없이 결과값을 리턴하는 함수입니다.
def say_hello():
    return "안녕하세요"

print(say_hello())  # 출력: 안녕하세요
  • 리턴값이 없는 함수: 입력값을 받아서 수행하지만, 결과값을 반환하지 않는 함수입니다.
def print_name(name):
    print("당신의 이름은", name)

print_name("오픈AI")  # 출력: 당신의 이름은 오픈AI
  • 입력값도 리턴값도 없는 함수: 이 함수는 수행할 작업만 존재하고, 입력값과 결괏값이 모두 없습니다.
def print_hello():
    print("Hello, Python!")

print_hello()  # 출력: Hello, Python!

 

안녕하세요, 파이썬 친구들! 다시 만나서 반가워요. 지난 번에 이어서 파이썬 함수의 아름다움을 함께 탐색해보려 합니다. 그럼 시작해볼까요?

 

매개변수를 지정하여 호출하기

우리는 함수에 매개변수를 직접 지정하여 호출할 수 있습니다. 이렇게 하면 매개변수의 순서를 기억하지 않아도 되기 때문에 매우 편리해요.

 

def introduce(name, age):
    print("제 이름은", name, "이고 나이는", age, "살입니다.")

introduce(age=30, name='Alice')
# 출력: 제 이름은 Alice 이고 나이는 30 살입니다.

입력값이 몇 개가 될지 모를 때는 어떻게 해야 할까?

이런 경우, 파이썬의 가변 매개변수를 사용하면 해결할 수 있어요. 가변 매개변수는 *args**kwargs를 사용해서 표현합니다.

 

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

print(add(1, 2, 3, 4, 5))  # 출력: 15

함수의 리턴값은 언제나 하나이다

함수에서 여러 값을 반환하면, 그 값들은 튜플로 묶여서 반환됩니다.

 

def work():
    return 'work', 'hard'

result = work()
print(result)  # 출력: ('work', 'hard')

매개변수에 초깃값 미리 설정하기

파이썬 함수에서는 매개변수에 기본값을 미리 설정할 수 있어요. 이렇게 하면 함수를 호출할 때 해당 매개변수를 생략하면 기본값이 사용됩니다.

 

def greet(name='Guest'):
    print('Hello,', name)

greet()  # 출력: Hello, Guest

함수 안에서 선언한 변수의 효력 범위

함수 안에서 선언된 변수는, 그 함수 내에서만 유효합니다. 이러한 변수를 지역 변수라고 부릅니다.

 

def my_function():
    inside_var = "I'm inside"
    print(inside_var)

my_function()  # 출력: I'm inside
print(inside_var)  # NameError 발생

함수 안에서 함수 밖의 변수를 변경하는 방법

함수 내부에서 함수 외부의 변수를 변경하려면 global 키워드를 사용합니다.

 

outside_var = "I'm outside"

def my_function():
    global outside_var
    outside_var = "I'm inside now"
    print(outside_var)

my_function()  # 출력: I'm inside now
print(outside_var)  # 출력: I'm inside now

lambda 예약어

lambda는 함수를 생성하는 또 다른 방법입니다. 이를 사용하면 코드를 보다 간결하게 작성할 수 있습니다.

 

square = lambda x: x + 2
print(square(5))  # 출력: 7

지금까지 함수와 관련된 여러 주제들을 함께 살펴보았습니다. 파이썬에 대한 여러분의 이해가 한층 더 깊어졌기를 바라며, 그럼 다음 글에서 다시 만나요! 항상 파이팅이에요!

 
LIST