
오랜만에 파이썬을 다시 공부해야겠다는 생각이 들었습니다. 예전에 한 번 배운 내용도 시간이 지나면 문법은 희미해지고, 막상 코드를 작성할 때는 사소한 부분에서 손이 멈추곤 합니다. 그래서 다시 보는 김에 파이썬의 기초부터 하나씩 차근차근 포스팅해 보려고 합니다.
첫 글에서는 파이썬 코드가 어떤 순서로 움직이는지, print()는 왜 배우는지, 주석과 들여쓰기가 프로그램에서 어떤 역할을 하는지를 이해해 보겠습니다. 짧은 코드지만 앞으로 배울 변수, 조건문, 반복문, 함수의 바탕이 되는 내용입니다.
앞으로 파이썬을 어떤 순서로 공부할까?
파이썬 입문 과정은 문법을 무작정 외우기보다 작은 프로그램을 만드는 데 필요한 재료를 하나씩 늘려 가는 방식이 좋습니다. 이 연재는 다음 흐름으로 진행할 예정입니다.
| 순서 | 주제 | 배우는 이유 |
|---|---|---|
| 1 | 코드 실행 순서, print(), 주석, 들여쓰기 |
코드를 읽고 결과를 확인하는 방법을 익히기 위해 |
| 2 | 변수와 이름 | 프로그램이 값을 기억하게 만들기 위해 |
| 3 | 숫자, 문자열, 불리언과 연산자 | 데이터의 종류와 계산 방법을 구분하기 위해 |
| 4 | input()과 형 변환 |
사용자에게 값을 받아 프로그램에 연결하기 위해 |
| 5 | 조건문 | 상황에 따라 다른 동작을 선택하기 위해 |
| 6 | for, while 반복문 |
같은 일을 효율적으로 반복하기 위해 |
| 7 | 문자열, 리스트, 튜플 | 여러 값을 순서대로 다루기 위해 |
| 8 | 딕셔너리와 집합 | 값을 이름이나 관계로 정리하기 위해 |
| 9 | 함수와 스코프 | 코드를 역할별로 나누고 재사용하기 위해 |
| 10 | 모듈과 패키지 | 다른 코드의 기능을 가져와 활용하기 위해 |
| 11 | 파일과 예외 처리 | 데이터를 저장하고 오류에 대응하기 위해 |
| 12 | 클래스와 객체 | 데이터와 기능을 하나의 개념으로 묶기 위해 |
| 13 | 테스트, 디버깅, 기본 알고리즘 | 코드가 맞는지 확인하고 더 좋은 해결법을 찾기 위해 |
처음부터 모든 것을 한 글에 담으면 문법 목록만 남기 쉽습니다. 한 글에서 하나의 핵심 질문을 해결하고, 직접 바꿔 볼 수 있는 짧은 예제를 함께 작성하겠습니다.
프로그램은 입력을 받아 처리하고 결과를 보여 준다
프로그램을 아주 단순하게 보면 세 단계로 생각할 수 있습니다.
- 값을 받습니다.
- 정해 둔 규칙대로 처리합니다.
- 처리한 결과를 보여 줍니다.
예를 들어 카페 주문 프로그램은 메뉴 번호를 입력받고, 가격을 계산한 다음, 주문 내용을 화면에 보여 줍니다. 오늘 배우는 print()는 세 번째 단계인 결과 보여 주기를 담당합니다.
아직 입력과 계산을 배우지 않았더라도 출력부터 시작하는 이유가 있습니다. 프로그램이 현재 무엇을 알고 있고 어디까지 실행됐는지 눈으로 확인할 수 있기 때문입니다. 출력은 단순한 인사말을 넘어 코드를 관찰하는 창 역할을 합니다.
첫 파이썬 코드 print()
가장 먼저 다음 코드를 살펴보겠습니다.
print("파이썬 공부를 다시 시작합니다.")
실행 결과는 다음과 같습니다.
파이썬 공부를 다시 시작합니다.
print()는 괄호 안에 전달한 값을 글자로 바꾸어 출력하는 파이썬의 내장 함수입니다. 내장 함수는 별도로 직접 만들거나 불러오지 않아도 기본으로 사용할 수 있는 기능입니다.
print 문법을 나누어 보기
print("안녕하세요")
이 한 줄은 세 부분으로 나누어 볼 수 있습니다.
print: 사용할 함수의 이름입니다.(): 함수를 실행한다는 뜻입니다."안녕하세요": 함수에 전달하는 값이며, 이런 값을 인자라고 부릅니다.
처음에는 print를 단순한 출력 명령으로 기억해도 괜찮습니다. 다만 괄호 안에 값을 넣어 기능을 사용한다는 형태는 앞으로 input(), len(), 직접 만든 함수에서도 계속 등장합니다.
따옴표는 왜 사용할까?
파이썬에서 글자는 따옴표로 감쌉니다. 따옴표로 묶인 글자 묶음을 문자열이라고 합니다.
print("Python")
print('파이썬')
큰따옴표와 작은따옴표를 모두 사용할 수 있습니다. 중요한 점은 시작한 따옴표와 끝나는 따옴표의 종류를 맞추는 것입니다.
print("시작과 끝이 같습니다.")
print('이 코드도 올바릅니다.')
다음처럼 따옴표를 닫지 않으면 파이썬은 문자열이 어디서 끝나는지 알 수 없습니다.
# 잘못된 예: 끝나는 따옴표가 없습니다.
print("안녕하세요)
이때 발생하는 SyntaxError는 파이썬 문법에 맞지 않는 부분이 있다는 뜻입니다. 오류는 실패 표시라기보다 파이썬이 이해하지 못한 위치를 알려 주는 안내문에 가깝습니다.
코드는 기본적으로 위에서 아래로 실행된다
파이썬은 특별한 흐름 제어가 없다면 작성된 문장을 위에서 아래로 하나씩 실행합니다.
print("1. 컵을 준비합니다.")
print("2. 차를 우립니다.")
print("3. 천천히 마십니다.")
실행 결과도 같은 순서로 나타납니다.
1. 컵을 준비합니다.
2. 차를 우립니다.
3. 천천히 마십니다.
이 원리는 단순하지만 중요합니다. 프로그램에서 결과가 예상과 다를 때는 “어떤 줄이 먼저 실행됐을까?”를 따라가 보는 것이 디버깅의 시작이기 때문입니다.
조건문을 배우면 일부 줄만 선택해서 실행하고, 반복문을 배우면 같은 줄을 여러 번 실행합니다. 함수를 배우면 잠시 다른 코드 묶음으로 이동했다가 돌아옵니다. 그래도 코드의 흐름을 한 단계씩 추적한다는 기본 생각은 같습니다.
print()에 여러 값을 전달하기
print()에는 쉼표로 구분해 여러 값을 전달할 수 있습니다.
print("오늘 공부할 것:", "print", "주석", "들여쓰기")
실행 결과입니다.
오늘 공부할 것: print 주석 들여쓰기
파이썬은 여러 값 사이에 기본적으로 공백을 넣습니다. 나중에 변수를 배우면 이름과 점수처럼 서로 다른 값을 한 번에 확인할 때 자주 사용하게 됩니다.
topic = "파이썬"
step = 1
print("주제:", topic)
print("학습 순서:", step)
변수 문법은 다음 글에서 자세히 다루겠습니다. 지금은 print()가 글자뿐 아니라 숫자와 변수의 값도 출력할 수 있다는 점만 확인하면 충분합니다.
sep와 end는 언제 사용할까?
기본 출력 모양을 바꾸고 싶을 때는 sep와 end를 사용할 수 있습니다.
sep로 값 사이를 구분하기
sep는 여러 값 사이에 들어갈 문자를 정합니다.
print("2026", "08", "03", sep="-")
2026-08-03
쉼표로 전달한 값 사이의 기본 공백 대신 -가 들어갔습니다. 날짜, 경로 모양, 구분된 결과를 만들 때 유용합니다.
end로 줄의 끝을 바꾸기
print()는 기본적으로 출력 뒤에 줄바꿈을 추가합니다. end를 지정하면 줄 끝의 동작을 바꿀 수 있습니다.
print("Python", end=" -> ")
print("다음 공부는 변수")
Python -> 다음 공부는 변수
sep와 end는 무조건 사용해야 하는 문법이 아닙니다. 기본 출력으로 표현하기 어려울 때 필요한 모양을 분명하게 지정하기 위해 사용합니다.
주석은 누구를 위한 글일까?
주석은 #으로 시작합니다. # 뒤에서 그 줄이 끝날 때까지는 코드로 실행되지 않습니다.
# 첫 번째 파이썬 출력입니다.
print("안녕하세요")
print("여기는 실행됩니다") # 이 부분은 설명입니다.
주석은 파이썬보다 코드를 읽는 사람을 위한 글입니다. 시간이 지난 뒤의 나, 함께 작업하는 사람, 코드를 처음 읽는 사람이 왜 이렇게 작성했는지 이해하도록 돕습니다.
다만 코드 내용을 그대로 읽어 주는 주석은 큰 도움이 되지 않습니다.
# 안녕하세요를 출력한다.
print("안녕하세요")
다음처럼 코드만 보고는 알기 어려운 의도를 남기는 편이 좋습니다.
# 수업 시작 전에 연결 상태를 확인하기 위한 메시지입니다.
print("준비 완료")
문자열 안의 #은 주석이 아닙니다. 따옴표 안에서는 평범한 글자로 취급됩니다.
print("#파이썬공부")
들여쓰기는 왜 문법일까?
들여쓰기는 줄 앞에 일정한 공백을 넣는 것입니다. 다른 언어에서는 코드 블록을 중괄호로 묶기도 하지만, 파이썬은 들여쓰기로 어떤 문장들이 같은 묶음인지 표현합니다.
if True:
print("들여쓴 문장은 조건문 안에 있습니다.")
print("이 문장은 조건문 밖에 있습니다.")
아직 조건문을 배우지 않았으므로 코드를 외울 필요는 없습니다. if True: 아래에서 네 칸 들여쓴 출력문은 조건문에 포함되고, 다시 왼쪽으로 돌아온 마지막 출력문은 조건문 밖에 있다는 구조만 살펴보세요.
들여쓰기는 단순히 보기 좋게 정렬하는 장식이 아닙니다. 파이썬이 코드의 소속을 판단하는 문법입니다. 들여쓰기가 어긋나면 IndentationError가 발생하거나, 더 위험하게는 실행은 되지만 내가 생각한 것과 다른 묶음으로 처리될 수 있습니다.
보통 한 단계에 공백 네 칸을 사용합니다. 탭과 공백을 섞으면 눈으로는 비슷해 보여도 파이썬이 서로 다른 들여쓰기로 판단할 수 있으므로 한 가지 방식을 일관되게 사용하는 것이 좋습니다.
print()는 실제로 언제 유용할까?
print()는 완성된 결과를 보여 줄 때도 쓰지만, 공부하는 동안 코드의 상태를 확인하는 데 특히 유용합니다.
price = 3000
count = 2
print("가격:", price)
print("수량:", count)
print("계산 결과:", price * count)
가격: 3000
수량: 2
계산 결과: 6000
계산 결과가 이상하다면 가격, 수량, 최종 계산을 차례로 출력해 어느 단계에서 예상과 달라졌는지 확인할 수 있습니다. 나중에는 전용 디버거와 로깅도 배우게 되지만, 작은 프로그램에서는 print()만으로도 흐름을 이해하는 데 큰 도움이 됩니다.
자주 하는 실수
print의 대소문자를 바꾸는 경우
파이썬은 대소문자를 구분합니다. Print()나 PRINT()는 기본 print() 함수와 다른 이름입니다.
print("올바른 이름입니다.")
괄호나 따옴표를 닫지 않는 경우
여는 괄호와 따옴표가 있다면 닫는 기호도 있어야 합니다. 오류 메시지가 나오면 표시된 줄뿐 아니라 바로 앞줄의 기호가 빠지지 않았는지도 확인합니다.
필요 없는 들여쓰기를 넣는 경우
코드 묶음이 시작되지 않았는데 줄 앞을 들여쓰면 예상하지 못한 들여쓰기라는 오류가 발생할 수 있습니다.
print("첫 번째 줄")
print("두 번째 줄")
같은 단계에서 실행할 문장이라면 줄의 시작 위치를 맞춥니다.
직접 바꿔 보며 확인하기
다음 문제를 직접 작성해 보세요.
- 이름 대신 좋아하는 음식과 그 이유를 두 줄로 출력합니다.
print()하나에 세 개의 단어를 전달하고sep=" / "로 구분합니다.- 두 개의
print()를end로 연결해 한 줄의 문장으로 만듭니다. - 실행하지 않을 출력문 앞에
#을 붙이고 결과가 사라지는지 확인합니다. - 오늘 배운 내용을 설명하는 주석을 한 줄 작성합니다.
정답을 그대로 찾기보다 문자열과 구분 문자를 바꿔 보는 것이 좋습니다. 예제를 바꿨을 때 결과를 미리 예상하고, 실제 결과와 비교하면 코드가 움직이는 원리를 더 빨리 익힐 수 있습니다.
정리
파이썬 코드는 기본적으로 위에서 아래로 한 줄씩 실행됩니다. print()는 값과 프로그램의 상태를 화면에 보여 주는 내장 함수이며, 괄호 안에 출력할 값을 전달합니다. sep는 여러 값 사이를, end는 출력 끝을 조절합니다.
#으로 시작하는 주석은 실행되지 않으며 코드의 이유와 의도를 사람에게 설명합니다. 들여쓰기는 문장을 보기 좋게 만드는 장식이 아니라 코드의 소속을 구분하는 파이썬 문법입니다.
다음 글에서는 프로그램이 값을 기억하게 만드는 변수를 다루겠습니다. 파이썬의 변수는 상자라기보다 이름과 객체가 연결되는 관계로 이해하면 이후 리스트와 함수까지 훨씬 자연스럽게 이어집니다.
참고 자료
'파이썬(Python)' 카테고리의 다른 글
| [Python(파이썬)] 조건문이란? if·elif·else와 중첩 조건 쉽게 이해하기 (0) | 2026.08.09 |
|---|---|
| [Python(파이썬)] input()이란? 사용자 입력과 int·float 형 변환 쉽게 이해하기 (0) | 2026.08.08 |
| [Python(파이썬)] 연산자란? 산술·비교·논리 연산과 우선순위 이해하기 (0) | 2026.08.07 |
| [Python(파이썬)] 기본 자료형이란? int, float, str, bool, None 쉽게 이해하기 (3) | 2026.08.05 |
| [Python(파이썬)] 변수란? 대입문과 이름·객체의 연결 이해하기 (0) | 2026.08.04 |