Python 함수: 코드를 재사용하는 방법을 배운 과정
요약
본 글은 파이썬 함수를 활용하여 코드를 재사용하는 방법을 학습한 과정을 다룹니다. 함수의 정의, 호출, 매개변수와 인자의 차이점, 여러 값 처리 방법 등을 설명합니다. 특히 `print()`로 출력하는 것과 `return`으로 값을 반환하는 개념의 중요성을 강조하며 스코프 개념까지 다루고 있습니다.
핵심 포인트
- 함수는 코드를 한 번 작성하고 반복 사용하게 해줍니다.
- 매개변수(parameter)와 인자(argument)는 다른 개념입니다.
- `print()`은 출력만 하고, `return`은 값을 반환하여 재사용 가능합니다.
- 스코프를 이해하면 변수의 접근 범위를 정확히 관리할 수 있습니다.
파이썬을 더 많이 쓰기 시작하면서, 같은 코드 조각들을 반복해서 작성하고 있다는 것을 깨달았습니다.
처음에는 크게 생각하지 않았습니다. 하지만 시간이 지나자, 뭔가 더 나은 방법이 있어야 한다는 것을 알게 되었습니다.
그때부터 함수(function)라는 개념이 저에게 이해되기 시작했습니다.
함수는 제가 코드 조각을 한 번만 작성하고 필요할 때마다 사용할 수 있게 해줍니다.
함수 정의하기 (Defining a function)
저는 def를 사용해서 함수를 만듭니다.
예시:
def greet():
print("Hello, welcome!")
아직 아무 일도 일어나지 않습니다. 왜냐하면 저는 단지 함수만 정의했기 때문입니다.
실제로 실행하려면, 호출해야 합니다:
greet()
이것은 제가 함수에 대해 이해한 첫 번째 내용 중 하나였습니다: 함수를 정의하는 것과 함수를 호출하는 것은 두 가지 다른 일이라는 것입니다.
매개변수와 인자 (Parameters and arguments)
함수는 제가 정보를 전달할 수 있게 되면 훨씬 유용해집니다.
예시:
def greet(name):
print(f"Hello, {name}!")
이제 이름을 전달할 수 있습니다:
greet("Feddy")
결과는 다음과 같습니다:
Hello, Feddy!
함수 내부의 이름은 매개변수(parameter)이고, "Feddy"는 제가 그것에 전달하는 인자(argument)입니다.
이 차이점을 기억하기 위해 약간의 연습이 필요했습니다.
여러 개의 매개변수 (Multiple parameters)
저는 하나 이상의 값도 전달할 수 있습니다.
예를 들어, 제품의 총 비용을 계산할 수 있습니다:
def calculate_total(price, quantity):
total = price * quantity
print(total)
그리고 나서:
calculate_total(500, 3)
결과는 다음과 같습니다:
1500
이것은 필요할 때마다 같은 계산을 작성하는 것보다 훨씬 좋습니다.
반환 값 (Return values)
이것은 저에게 또 다른 중요한 부분이었습니다.
함수는 단순히 출력(print)만 하는 대신 값을 반환(return)할 수 있습니다.
예를 들어:
def calculate_total(price, quantity):
return price * quantity
이제 저는 결과를 저장할 수 있습니다:
total = calculate_total(500, 3)
print(total)
결과는 다음과 같습니다:
1500
print()와 return의 차이점이 여기서 훨씬 명확해졌습니다.
print()는 무언가를 표시합니다.
return은 값을 되돌려 보내서 제가 다른 곳에서 사용할 수 있게 합니다.
스코프 (Scope)
스코프는 기본적으로 변수에 접근할 수 있는 범위를 의미합니다.
예를 들어:
name = "Feddy"
def greet():
name = "Amina"
print(name)
greet()
print(name)
함수 내부에서는 결과가 다음과 같습니다:
Amina
함수 외부에서는 결과가 다음과 같습니다:
Feddy
함수 내부에서 생성된 이름은 해당 함수에 국한됩니다.
이것을 이해함으로써 저는 실수로 잘못된 장소의 변수를 변경하거나 의존하는 것을 피할 수 있었습니다.
실용적인 예시
제가 사용했던 간단한 예시는 순수 급여(net salary)를 계산하는 것이었습니다.
누군가의 급여가 KSh 85,000이고 공제액이 KSh 4,500이라고 가정해 봅시다.
저는 다음과 같이 만들 수 있습니다:
def calculate_net_salary(salary, deductions):
return salary - deductions
그러면:
net_salary = calculate_net_salary(85000, 4500)
print(f"Net salary: KSh {net_salary}")
결과는 다음과 같습니다:
Net salary: KSh 80500
이제 계산을 다시 작성할 필요 없이 같은 함수를 다른 직원에게 사용할 수 있습니다.
함수가 저에게 유용해진 이유
함수를 배우기 전에는 이렇게 생각했습니다:
"이 계산을 또 써야겠네."
하지만 함수를 배운 후에는 이렇게 생각하기 시작했습니다:
"이미 한 번 썼잖아. 그냥 함수를 호출하면 돼."
그 작은 변화가 제 코드를 훨씬 더 깔끔하게 만들었습니다.
제가 이해한 것들
제가 지금 함수에 대해 생각하는 방식은 상당히 간단합니다:
def → 함수 생성하기
Parameters → 함수가 기대하는 정보
Arguments → 제가 실제로 전달하는 값
return → 결과를 되돌려 보내기
Scope → 변수에 접근할 수 있는 범위
이 개념들이 명확해지자, 함수는 더 이상 복잡하게 느껴지지 않았습니다.
마지막 생각
함수는 제가 단순히 파이썬 코드를 작성하는 것이 아니라 실제로 코드를 정리하고 있다는 느낌을 받게 해준 첫 번째 요소 중 하나였습니다.
이는 반복을 피하고, 큰 프로그램을 더 작은 부분으로 나누고, 필요할 때마다 코드를 재사용하는 데 도움을 주었습니다.
저에게 있어 가장 큰 교훈은 간단했습니다. 한 번 작성하고, 그리고 재사용하라입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기