파이썬을 처음 배울 때 코드가 내 마음처럼 움직이지 않아 답답하셨죠? 특히 조건문과 반복문은 프로그램에 지능을 불어넣는 핵심 도구지만, 들여쓰기 하나나 콜론 하나 때문에 오류가 나면 무척 당황스럽습니다. 이 글을 통해 헷갈리는 파이썬 기초 문법의 핵심만 콕 집어 정리하고, 실전에서 바로 써먹을 수 있는 요약 노트를 손에 넣어 보세요.
참과 거짓을 판별하는 조건문(if)
조건문은 컴퓨터에게 “만약 이 상황이라면 이렇게 행동해”라고 명령을 내리는 방법입니다. 파이썬에서는 if, elif, else라는 키워드를 사용하여 흐름을 제어합니다. 가장 주의해야 할 점은 조건식 끝에 반드시 콜론(:)을 붙여야 하며, 실행할 코드는 반드시 들여쓰기(보통 스페이스 4칸)를 해야 한다는 것입니다. 들여쓰기가 맞지 않으면 파이썬은 해당 코드가 조건문에 포함된 것인지 알지 못해 오류를 일으킵니다.
여러 가지 조건을 따져야 할 때는 elif를 사용합니다. 이는 ‘그렇지 않고 만약에’라는 뜻으로, 위에서부터 순서대로 조건을 검사하다가 참이 나오는 구간의 코드만 실행하고 나머지는 건너뜁니다. 마지막에 붙는 else는 앞의 모든 조건이 맞지 않을 때 실행되는 ‘나머지’ 구역입니다. 파이썬 기초 단계에서 조건문을 잘 활용하면 복잡한 의사결정 구조도 깔끔하게 설계할 수 있습니다.
비교 연산자와 논리 연산자 활용하기
조건문 안에는 참(True)과 거짓(False)을 가리는 식이 들어갑니다. 숫자를 비교하거나 여러 조건을 동시에 만족해야 하는 경우 연산자를 적절히 섞어 사용해야 합니다. 파이썬 문법은 영어 문장과 비슷하게 설계되어 있어 and, or, not 같은 단어를 그대로 사용하므로 직관적으로 코드를 이해할 수 있다는 장점이 있습니다.
| 연산자 종류 | 기호 및 키워드 | 설명 및 예시 |
|---|---|---|
| 비교 연산자 | ==, !=, >, < | 값이 같은지(==), 다른지(!=), 큰지(>) 등을 비교 |
| 논리 연산자 | and, or, not | 모두 참일 때(and), 하나만 참이어도(or), 결과를 반대로(not) |
| 포함 연산자 | in, not in | 리스트나 문자열 안에 특정 값이 들어있는지 확인 |
| 불린(Boolean) | True, False | 조건문의 결과로 반환되는 기본 논리값 |
정해진 횟수나 범위를 반복하는 for문
반복문은 똑같은 작업을 여러 번 일일이 타이핑하는 수고를 덜어줍니다. 그중 for문은 리스트나 문자열, 혹은 range() 함수로 만든 숫자 범위처럼 ‘순서가 있는 데이터’를 하나씩 꺼내 쓰기에 가장 좋습니다. 파이썬 기초 학습자라면 range(시작, 끝) 함수가 ‘끝’ 숫자는 포함하지 않는다는 점을 꼭 기억해야 합니다. 예를 들어 range(1, 5)는 1, 2, 3, 4까지만 반복됩니다.
for문의 가장 큰 매력은 리스트 안의 데이터를 아주 쉽게 처리할 수 있다는 점입니다. 데이터를 하나씩 변수에 담아 실행문에서 활용할 수 있어 데이터 분석이나 웹 크롤링 등 다양한 분야에서 필수적으로 쓰입니다. 반복할 대상이 명확할 때는 while문보다 for문을 사용하는 것이 코드의 가독성을 높이고 실수를 줄이는 방법입니다.
반복의 흐름을 조절하는 제어문
반복을 하다가 특정 조건에서 멈추거나, 이번 순서만 건너뛰고 싶을 때는 break와 continue를 사용합니다. 이 제어문들은 보통 반복문 안의 조건문과 함께 쓰입니다. 파이썬 문법을 더 유연하게 만들어주는 이 도구들을 적재적소에 배치하면 불필요한 연산을 줄여 프로그램의 성능을 높일 수 있습니다.
- break: 반복문을 즉시 종료하고 밖으로 빠져나감
- continue: 아래 코드를 무시하고 다음 반복 순서로 바로 넘어감
- range(n): 0부터 n-1까지의 정수 범위를 생성
- enumerate(): 인덱스 번호와 값을 동시에 꺼낼 때 사용
- 리스트 내포(Comprehension): 한 줄로 간결하게 반복문을 작성하는 기법
조건이 맞을 때까지 계속되는 while문
while문은 횟수가 정해지지 않았더라도 특정 조건이 참(True)인 동안에는 계속해서 코드를 실행합니다. “사용자가 종료 버튼을 누를 때까지” 혹은 “값이 100이 될 때까지”처럼 목표치가 유동적일 때 유용합니다. 하지만 조건을 잘못 설정하면 프로그램이 영원히 멈추지 않는 ‘무한 루프’에 빠질 수 있으므로, 반드시 반복문 안에서 조건을 변화시키는 코드가 포함되어야 합니다.
파이썬 기초 과정에서 while문은 게임의 루프나 실시간 데이터 감시 시스템 등을 구현할 때 자주 등장합니다. for문과 while문은 서로 변환이 가능한 경우가 많지만, 각각의 특성을 이해하고 상황에 맞는 문법을 선택하는 안목을 기르는 것이 중요합니다. 요약 노트를 곁에 두고 반복해서 연습하다 보면 어느새 복잡한 로직도 자유자재로 다루게 될 것입니다.
| 반복문 종류 | 주요 용도 | 핵심 키워드 및 주의사항 |
|---|---|---|
| for문 | 정해진 횟수, 리스트 순회 | range(), 리스트, 튜플, 문자열 등 활용 |
| while문 | 조건 만족 시까지 무한 반복 | 무한 루프 방지를 위한 증감식 필수 |
| break | 반복 강제 종료 | 특정 조건 달성 시 루프 탈출용 |
| continue | 현재 차례 건너뛰기 | 특정 조건일 때만 작업을 패스할 때 유용 |
파이썬 기초 관련 자주 묻는 질문(FAQ)
if문에서 elif와 else는 꼭 써야 하나요?
아닙니다. 가장 기본적인 if문 하나만 사용해도 문법적으로 문제가 없습니다. 하지만 조건이 여러 개로 나뉠 때 if문을 여러 번 쓰면 모든 조건을 다 검사하느라 속도가 느려질 수 있습니다. 반면 elif를 쓰면 하나가 참일 때 나머지는 검사하지 않고 넘어가므로 더 효율적입니다. else는 예외적인 상황을 처리하기 위해 마지막 안전장치로 사용하는 것을 권장합니다.
파이썬에서 들여쓰기가 왜 그렇게 중요한가요?
다른 프로그래밍 언어들은 중괄호({})를 사용해 코드의 범위를 표시하지만, 파이썬은 오직 들여쓰기만으로 코드의 종속 관계를 구분합니다. 즉, 들여쓰기가 되어 있는 코드는 바로 위 조건문이나 반복문에 속해 있다는 뜻입니다. 파이썬 기초 문법에서 가장 빈번하게 발생하는 ‘IndentationError’는 대부분 이 들여쓰기 칸수가 맞지 않아서 발생하므로 항상 탭(Tab)보다는 스페이스 4칸을 일관되게 사용하는 것이 좋습니다.
for문과 while문 중 어떤 것을 쓰는 게 더 좋은가요?
상황에 따라 다릅니다. 반복해야 할 횟수가 정해져 있거나 데이터 리스트의 처음부터 끝까지 훑어야 한다면 for문이 훨씬 간결하고 안전합니다. 반대로 게임의 메인 화면처럼 특정 이벤트가 발생할 때까지 무한히 대기해야 하거나 조건에 따라 반복 횟수가 시시각각 변한다면 while문이 더 적합합니다. 파이썬 문법 입문 단계에서는 가독성이 좋은 for문을 먼저 마스터하는 것을 추천합니다.
무한 루프에 빠졌을 때 어떻게 멈춰야 하나요?
프로그램이 멈추지 않고 계속 실행된다면 키보드에서 ‘Ctrl + C’를 눌러 강제로 종료할 수 있습니다. 무한 루프는 대개 while문의 조건식이 항상 참(True)이거나, 조건에 영향을 주는 변수값이 반복문 안에서 업데이트되지 않을 때 발생합니다. 코드를 작성할 때 변수의 값을 1씩 증가시키는 i += 1 같은 변화식을 빼먹지 않았는지 꼭 확인해 보세요.
range(0, 10)과 range(10)은 무엇이 다른가요?
결과적으로는 같습니다. range() 함수에서 시작 숫자를 생략하면 기본적으로 0부터 시작합니다. 즉, range(10)은 0부터 9까지 총 10개의 숫자를 생성합니다. 하지만 1부터 시작하고 싶다면 range(1, 10)처럼 시작점을 명시해주어야 합니다. 파이썬 기초 문법에서 숫자의 범위를 지정할 때 마지막 숫자는 포함되지 않는다는 점(미만)을 헷갈리지 않도록 주의해야 합니다.
리스트 안에 있는 값들을 거꾸로 반복할 수도 있나요?
네, 다양한 방법이 있습니다. 가장 쉬운 방법은 reversed() 함수를 사용하는 것입니다. 예를 들어 for i in reversed(my_list): 라고 작성하면 리스트의 마지막 요소부터 거꾸로 꺼내옵니다. 또는 range() 함수를 쓸 때 세 번째 인자인 ‘증감폭’을 음수로 설정하여 range(10, 0, -1)처럼 작성하면 10부터 1까지 거꾸로 작아지는 숫자를 얻을 수 있습니다.