코딩이 어려워 고민하고 있지 않으신가요? 걱정 마세요, 우리 함께 학습하면서 코딩을 쉽게 이해할 수 있도록 도와드리겠습니다. 오늘은 매우 중요한 주제인 함수에 대해 배워볼 것입니다. 함수를 이해하면 마치 마법사가 주문을 외치는 것처럼 코딩을 편하게 할 수 있답니다!
함수란 무엇인가?
함수는 동일한 작업을 반복 수행할 때 사용하는 코드 묶음입니다. 이를테면 "안녕하세요"라는 인사말을 출력하는 코드를 반복해서 사용하고 싶다면, 이 작업을 함수로 만들어 사용할 수 있습니다.
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
지금까지 함수와 관련된 여러 주제들을 함께 살펴보았습니다. 파이썬에 대한 여러분의 이해가 한층 더 깊어졌기를 바라며, 그럼 다음 글에서 다시 만나요! 항상 파이팅이에요!
'프로그래밍 > PYTHON' 카테고리의 다른 글
파이썬 날개 달기 : 🎈파이썬 클래스를 함께 풍선처럼 불어보아요!🎈 (0) | 2023.07.19 |
---|---|
파이썬 날개 달기 : 🎈파일 풍선을 불어봅시다: 파일 읽고 쓰기 간단히 배워보기🎈 (0) | 2023.07.19 |
프로그램의 구조 : 아기자기한 for문 - 직관적인 반복의 여행 (0) | 2023.07.18 |
프로그램의 구조 : 아기자기한 while문 - 반복의 세계로 떠나요 (0) | 2023.07.18 |
프로그램의 구조 : 아기자기한 if문 - 조건에 따른 선택의 세계 (0) | 2023.07.18 |