기초 5일차에는 함수가 왜 필요한지 정리했다
오늘은 기초 파트를 마무리하는 날이라, 지금까지 배운 내용을 함수라는 단위로 묶는 연습을 했다. 변수, 연산자, 조건문, 반복문을 각각 따로 이해하는 것도 중요하지만, 실제 코드는 결국 작은 기능 단위로 나눠서 쓰게 된다.
그래서 오늘은 “같은 코드를 반복해서 쓰지 않기 위해 함수가 필요하다”는 감각을 익히는 데 집중했다.
함수는 이름 붙은 작업이었다
기초 수준에서 이해한 함수는 아주 단순했다. 어떤 입력을 받아서 정해진 일을 하고, 필요하면 결과를 돌려주는 코드 묶음이다.
def greet(name):
print("안녕하세요,", name)
greet("Evan")
greet("Python")
이렇게 정리하니 반복해서 비슷한 코드를 쓰지 않아도 된다. 함수는 코드 길이를 줄이는 것보다도, “이 부분은 어떤 역할을 하는 코드인지”를 이름으로 보여준다는 점이 더 중요하게 느껴졌다.
return이 들어가면 함수가 더 강력해진다
오늘 실습하면서 print()와 return의 차이도 다시 생각하게 됐다.
def add(a, b):
return a + b
result = add(3, 4)
print(result)
print()는 보여주는 역할이고, return은 결과를 바깥으로 돌려주는 역할이다. 초반에는 둘 다 결과를 확인한다는 점 때문에 비슷하게 느껴질 수 있는데, 실제로는 완전히 다르다. return이 있어야 결과를 다른 계산에 다시 활용할 수 있다.
기초 파트를 함수 관점에서 다시 묶어보면
오늘은 짧은 실습이지만, 지금까지 배운 문법을 함수 안에 넣어보며 다시 정리했다.
def check_even(num):
if num % 2 == 0:
return "짝수"
else:
return "홀수"
print(check_even(4))
print(check_even(7))
이 함수 하나 안에 이미 꽤 많은 기초 문법이 들어 있다.
- 매개변수
- 조건문
- 나머지 연산자
- 반환값
즉, 함수는 새로운 문법이라기보다 기존 문법을 조합해서 더 실용적으로 쓰게 해주는 틀에 가깝다.
5일 동안 기초를 다시 보며 느낀 점
기초는 쉬운 내용의 나열이 아니라, 뒤에 나오는 모든 내용의 문법 기반이라는 생각이 들었다. 자료형을 구분하지 못하면 연산에서 막히고, 연산이 약하면 조건문이 헷갈리고, 조건문과 반복문이 약하면 함수로 구조화하기 어렵다.
짧은 실습들이 다 연결되어 있다는 점이 이번 복습에서 가장 크게 보였다. 그래서 기초를 다시 볼 때는 단원별로 쪼개서 외우기보다, 작은 프로그램 하나를 만들듯이 흐름으로 이해하는 게 더 맞는 방식이라는 생각이 들었다.
오늘 헷갈렸던 점
함수를 정의하는 것과 호출하는 것을 순간적으로 헷갈릴 때가 있었다. def로 만드는 순간과, 실제로 greet("Evan")처럼 실행하는 순간은 다르다.
또 print()와 return의 차이도 계속 의식해야 할 부분이다. 눈으로 확인하는 것과 값을 되돌리는 것은 목적이 다르다.
오늘의 실수 포인트
- 함수를 만들기만 하고 호출하지 않으면 실행되지 않는다.
return이 없으면 계산 결과를 재사용하기 어렵다.- 함수는 새로운 문법이 아니라 기존 문법을 묶는 방식이다.
복습용으로 남기는 질문
1. 함수 정의와 함수 호출의 차이는 무엇인가?
함수 정의는 def로 기능을 만드는 단계이고, 함수 호출은 만들어 둔 기능을 실제로 실행하는 단계다. 함수를 정의만 해두면 아직 실행되지 않는다.
2. print()와 return은 어떻게 다른가?
print()는 값을 화면에 보여 주는 역할이고, return은 함수 바깥으로 값을 돌려줘서 이후 코드에서 다시 사용할 수 있게 한다.
3. 지금까지 배운 기초 문법 중 함수 안에 들어갈 수 있는 것은 무엇인가?
변수, 연산자, 조건문, 반복문 같은 지금까지의 기초 문법 대부분이 함수 안에 들어갈 수 있다. 함수는 새로운 문법이라기보다 기존 문법을 묶어 재사용하는 틀에 가깝다.
한 줄 정리
오늘은 기초 문법을 따로따로 외우는 대신, 함수라는 단위로 묶어보며 Python 기초를 내 것으로 만드는 정리를 했다.
Community
Comments
Comments appear immediately. Use report if something needs review.
No comments yet.