파이썬 함수(Function): 나만의 마법 주문 만들기
파이썬 함수(Function): 나만의 마법 주문 만들기
똑같은 코드 반복은 이제 그만! 효율적인 코드의 핵심
안녕하세요! 어제까지 우리는 데이터를 담고 관리하는 다양한 바구니(자료구조)를 배웠습니다. 하지만 프로그램이 커질수록 같은 작업을 반복해서 적어야 하는 순간이 옵니다.
오늘 배울 함수(Function)는 반복되는 코드 뭉치를 하나로 묶어, 필요할 때마다 이름만 불러서 실행하는 아주 편리한 도구입니다.
1. 함수란 무엇인가요?
함수는 마치 '믹서기'와 같습니다. 과일(입력값)을 넣으면, 믹서기가 갈아주는 동작(함수 내용)을 거쳐, 주스(결과값)가 나옵니다. 우리는 믹서기 내부가 어떻게 도는지 매번 고민할 필요 없이 '버튼(함수 호출)'만 누르면 되죠!
1. 매개변수(Parameter): 함수에 전달하는 입력값입니다.
2. 본문(Body): 실행할 코드들이 들어있는 영역입니다.
3. 반환값(Return Value): 함수가 작업을 마친 뒤 돌려주는 결과입니다.
# 함수 정의하기 (def: define의 약자)
def greet(name):
print(f"안녕하세요, {name}님! 오늘도 코딩 열공하세요.")
# 함수 호출하기 (이름 불러주기)
greet("철수")
greet("영희")
2. 값을 받고, 결과 돌려주기 (Return)
함수가 단순히 화면에 출력만 하는 게 아니라, 계산된 결과를 나에게 다시 전달하게 하려면 return을 사용합니다.
# 두 수를 더해 결과를 돌려주는 함수
def add_numbers(a, b):
result = a + b
return result
# 함수가 돌려준 값을 변수에 저장
sum_val = add_numbers(10, 20)
print(f"합계는 {sum_val}입니다.") # 결과: 30
3. 팁: 기본값이 있는 매개변수
가끔은 입력을 깜빡해도 알아서 동작하게 하고 싶을 때가 있죠? 매개변수에 미리 값을 정해줄 수 있습니다.
def power(number, p=2): # p를 안 넣으면 기본적으로 제곱(2)을 합니다.
return number ** p
print(power(4)) # 결과: 16 (4의 2승)
print(power(4, 3)) # 결과: 64 (4의 3승)
함수 호출 시 값이 매개변수로 전달되는 흐름
def add(x, y):
return x + y
add(a, b)
a = 5, b = 10
x = 5
y = 10
x + y 계산
5 + 10 = 15
result = 15
💡 11일차 궁금증 해결 (Q&A)
Q1. print()와 return의 차이가 뭔가요?
A1. 가장 많이 헷갈려 하시는 부분입니다! print()는 단순히 모니터 화면에 보여주는 것이고, return은 함수를 호출한 곳으로 값을 **배달**해주는 것입니다. 배달된 값은 변수에 담아서 나중에 또 쓸 수 있지만, 화면에 찍힌 글자는 다시 쓸 수 없습니다.
Q2. 매개변수가 없는 함수도 만들 수 있나요?
A2. 네, 당연하죠! def say_hello(): 처럼 괄호 안을 비워두면 됩니다. 항상 똑같은 동작을 수행하는 알람 같은 기능을 만들 때 유용합니다.
Q3. 함수 안에서 만든 변수를 밖에서 쓸 수 있나요?
A3. 기본적으로는 불가능합니다. 이를 **'지역 변수'**라고 하는데요, 함수가 끝나면 함수 안에서 만든 변수는 사라집니다. 밖에서 쓰고 싶다면 반드시 return으로 내보내야 합니다.
오늘의 미션 🚩
"나만의 계산기 함수 만들기"
1. 숫자 두 개를 입력받아 곱셈 결과를 돌려주는 함수를 만드세요.
2. 만약 숫자를 하나만 넣으면 자동으로 10을 곱하도록 기본값을 설정해보세요.
3. 결과를 출력하여 확인해보세요!

댓글
댓글 쓰기