어제 오늘 내일

[Python 기초] 7. "괄호가 없어서 어색해요..." 파이썬의 생명, 들여쓰기(Indentation)와 if문 본문

IT/Python

[Python 기초] 7. "괄호가 없어서 어색해요..." 파이썬의 생명, 들여쓰기(Indentation)와 if문

hi.anna 2026. 4. 9. 09:36

프로그램이 똑똑해 보이려면 상황에 맞게 다른 행동을 해야 합니다. 로그인할 때 비밀번호가 맞으면 환영해주고, 틀리면 다시 입력하라고 경고창을 띄우는 것처럼요.
이런 논리적인 흐름을 제어하는 제1원칙이 바로 조건문(if문)입니다. 그리고 파이썬에서 조건문을 쓸 때 절대 모르면 안 되는 아주 독특하고 아름다운 규칙이 하나 있습니다.


1. 파이썬의 생명줄: 들여쓰기 (Indentation)

다른 프로그래밍 언어들을 보면 복잡한 중괄호 { }를 사용해서 "여기서부터 여기까지가 한 묶음이야!"라고 표시합니다.
하지만 파이썬 창시자는 코드가 지저분해지는 것을 싫어했습니다. 그래서 괄호를 과감히 없애고, '들여쓰기(여백)'로 코드의 구역을 나누도록 만들었습니다.

  • 규칙 1: 조건문 끝에는 반드시 콜론(:)을 붙여야 합니다. ("내 밑으로 주목!" 이라는 뜻입니다.)
  • 규칙 2: 콜론 다음 줄부터는 무조건 들여쓰기(Space 4번 또는 Tab 1번)를 해야 합니다.
  • 규칙 3: 들여쓰기가 끝나는 시점이 조건문이 끝나는 시점입니다.

📌 예제 코드: 들여쓰기의 중요성

weather = "비"

if weather == "비":
    print("우산을 챙기세요!")  # 들여쓰기 됨 (if문에 포함)
    print("장화도 신으세요!")  # 들여쓰기 됨 (if문에 포함)

print("외출을 합니다.")       # 들여쓰기 없음 (if문과 상관없이 무조건 실행)

만약 print("우산을 챙기세요!") 앞에 띄어쓰기를 깜빡한다면 파이썬은 IndentationError(들여쓰기 에러)를 내뿜으며 파업해버립니다. 처음엔 낯설지만, 이 규칙 덕분에 세상 모든 파이썬 코드는 누가 짜든 아주 깔끔하고 읽기 쉽습니다.


2. 기본 조건문: if, else, elif

조건이 하나만 있는 게 아니죠? "비가 오면 우산, 눈이 오면 패딩, 둘 다 아니면 겉옷"처럼 여러 갈래로 나눌 때 사용하는 삼총사입니다.

  • if: 만약 ~라면 (가장 처음에 등장)
  • elif: 그게 아니고, 만약 ~라면 (여러 번 사용 가능, else if의 줄임말)
  • else: 위의 조건들이 모두 아니라면 (가장 마지막에 등장, 조건식 불필요)

📌 예제 코드: 점수에 따른 학점 매기기

score = 85

if score >= 90:
    print("A학점입니다.")
elif score >= 80:
    print("B학점입니다.")  # score가 85이므로 여기가 실행됩니다!
elif score >= 70:
    print("C학점입니다.")
else:
    print("재수강을 권장합니다.")

💡 코드 설명:

  • 위에서부터 차례대로 조건을 검사합니다.
  • score >= 90이 거짓(False)이므로 다음 elif로 넘어갑니다.
  • score >= 80이 참(True)이므로 "B학점입니다."를 출력하고, 그 아래의 조건들은 거들떠보지도 않고 빠져나옵니다.

3. 파이썬만의 아름다운 논리 연산자 (and, or, not)

조건을 여러 개 섞어야 할 때도 파이썬은 기호를 쓰지 않고 영어 단어를 그대로 씁니다.

  1. and (그리고): 양쪽 조건이 모두 참이어야 실행
  2. or (또는): 둘 중 하나만 참이어도 실행
  3. not (반대): 참이면 거짓으로, 거짓이면 참으로 뒤집음

📌 예제 코드: 놀이기구 탑승 조건

age = 15
height = 160

# 나이가 14세 이상 '그리고' 키가 150 이상이어야 탑승 가능
if age >= 14 and height >= 150:
    print("롤러코스터 탑승 가능!")
else:
    print("탑승 불가!")

🔥 파이썬만의 사기 스킬: in 연산자
리스트나 문자열 안에 내가 찾는 값이 들어있는지 확인할 때, 다른 언어들은 복잡한 코드를 짜야 하지만 파이썬은 단어 하나면 끝납니다.

cart = ["사과", "바나나", "포도"]

if "사과" in cart:
    print("장바구니에 사과가 이미 있습니다!")

if "수박" not in cart:
    print("수박을 추가로 사야겠네요.")

4. [보너스] 인터넷에서 자주 보이는  은 뭘까요?

파이썬 코드를 보다 보면 파일 맨 밑에 이런 요상한 코드가 있는 걸 보게 됩니다.

if __name__ == "__main__":
    print("프로그램을 시작합니다.")

이건 파이썬만의 독특한 관용구입니다. 쉽게 번역하자면 "이 파일을 다른 곳에서 부품(모듈)으로 몰래 가져다 쓴 게 아니라, 내가 직접 더블클릭해서(메인으로) 실행한 게 맞나요?"라고 묻는 조건문입니다.

  • 내가 직접 실행함 -> 저 안의 코드가 작동함
  • 다른 파일에서 import로 가져감 -> 저 안의 코드는 작동하지 않고 조용히 기능만 빌려줌

지금 완벽히 이해하지 않아도 괜찮습니다. "아, 프로그램의 진짜 시작점을 알려주는 표지판이구나!" 정도로만 기억해 두세요.


📝 마치며

오늘의 핵심 요약입니다.

  1. 파이썬에서 코드를 하나로 묶으려면 괄호 대신 들여쓰기(Space 4번)를 쓴다.
  2. 조건문(if, elif, else) 끝에는 항상 콜론(:)을 잊지 말자.
  3. 여러 조건을 묶을 땐 직관적인 and, or, in을 활용하자.

조건문을 배우셨으니 이제 여러분의 프로그램은 스스로 판단을 내릴 수 있게 되었습니다.

하지만 만약 "이 동작을 100번 반복해!"라고 시키고 싶다면 어떻게 할까요? print()를 100줄 복사 붙여넣기 할 수는 없겠죠.
다음 포스팅에서는 "수백 번의 단순 노동을 한 방에 끝내는 마법! 파이썬의 for-in 반복문"에 대해 완벽하게 알아보겠습니다.

도움이 되셨다면 좋아요와 댓글 부탁드립니다! 🐍

반응형
Comments