기본 문법 알아보기

Tasker_Jang·2026년 2월 1일

들어가며

Hello, World!를 출력해봤다면, 이제 파이썬의 기본 문법을 이해할 차례입니다. 다른 프로그래밍 언어를 배워본 적이 있다면 파이썬의 문법이 독특하게 느껴질 수 있는데요. 특히 들여쓰기는 파이썬만의 특징적인 문법입니다. 이번 포스트에서는 파이썬 코드 작성의 기본 규칙들을 알아보겠습니다.

세미콜론은 선택사항

다른 언어 vs 파이썬

많은 프로그래밍 언어(C, Java, JavaScript 등)는 구문이 끝날 때 세미콜론(;)을 반드시 붙여야 합니다.

// JavaScript의 경우
console.log("Hello");  // 세미콜론 필수

하지만 파이썬은 세미콜론을 붙이지 않습니다.

print('Hello')  # 세미콜론 없음

세미콜론을 사용하는 경우

세미콜론을 붙여도 에러가 나지는 않습니다. 다만, 한 줄에 여러 문장을 작성할 때 구분자로 사용합니다.

print('Hello'); print('World'); print('Python')

출력 결과:

Hello
World
Python

하지만 이런 방식은 가독성이 떨어지므로, 일반적으로는 한 줄에 하나의 문장만 작성하는 것을 권장합니다.

# 권장하는 방식
print('Hello')
print('World')
print('Python')

주석(Comment)

주석이란?

주석(Comment)은 코드에 대한 설명을 작성하는 부분으로, 사람만 읽을 수 있고 파이썬 인터프리터는 무시합니다. 주석은 프로그램 실행에 영향을 주지 않습니다.

주석을 작성하는 이유:

  • 코드의 동작 원리를 설명
  • 나중에 코드를 다시 볼 때 이해를 돕기 위해
  • 다른 개발자와 협업할 때 코드 의도를 전달

한 줄 주석

# 기호를 사용하여 한 줄 주석을 작성합니다.

# 이것은 주석입니다
print('Hello, world!')  # 코드 옆에도 주석을 달 수 있습니다

# 이후의 모든 내용은 주석으로 처리되어 실행되지 않습니다.

블록 주석 (여러 줄 주석)

여러 줄에 걸쳐 주석을 작성할 때는 두 가지 방법이 있습니다.

방법 1: 각 줄마다 # 사용

# 이것은
# 여러 줄
# 주석입니다

방법 2: 작은따옴표 또는 큰따옴표 3개 사용

'''
이것은
여러 줄
주석입니다
'''

"""
이것도
여러 줄
주석입니다
"""

참고: 엄밀히 말하면 따옴표 3개는 주석이 아니라 문자열 리터럴이지만, 변수에 할당하지 않으면 실행에 영향을 주지 않으므로 주석처럼 사용됩니다. 나중에 함수나 클래스의 설명을 작성하는 독스트링(docstring)에서 이 방식을 정식으로 사용하게 됩니다.

인코딩(Encoding)

인코딩이란?

인코딩(Encoding)은 문자를 컴퓨터가 이해할 수 있는 0과 1의 조합(이진수)으로 변환하는 과정을 말합니다.

예를 들어:

  • 문자 A를 컴퓨터는 01000001로 저장
  • 한글 는 더 복잡한 이진수 조합으로 저장

UTF-8 인코딩

UTF-8은 전 세계의 거의 모든 언어를 표현할 수 있는 인코딩 방식입니다. 파이썬 3는 기본적으로 UTF-8 인코딩을 사용하므로, 한글을 비롯한 다양한 언어를 문제없이 사용할 수 있습니다.

print('안녕하세요')  # 한글 출력 가능
print('Hello')       # 영어 출력 가능
print('你好')        # 중국어 출력 가능
print('こんにちは')  # 일본어 출력 가능

다른 인코딩 방식으로는 ASCII, EUC-KR, CP949 등이 있지만, 현대 프로그래밍에서는 UTF-8이 사실상의 표준입니다.

들여쓰기(Indentation) - 파이썬의 핵심 문법

들여쓰기란?

들여쓰기(Indentation)는 코드를 읽기 쉽도록 일정한 간격을 띄워서 작성하는 방법입니다.

다른 언어에서는 들여쓰기가 단순히 가독성을 위한 것이지만, 파이썬에서는 들여쓰기 자체가 문법입니다.

들여쓰기 문법 에러

만약 들여쓰기를 하지 않으면 문법 에러가 발생하여 코드가 실행되지 않습니다.

# 잘못된 예: 들여쓰기 없음
if True:
print('Hello')  # IndentationError 발생!

에러 메시지:

IndentationError: expected an indented block

올바른 예:

if True:
    print('Hello')  # 들여쓰기 필수

들여쓰기 방법

파이썬에서 들여쓰기를 하는 방법은 여러 가지가 있습니다.

방법설명
스페이스 4칸PEP 8(파이썬 스타일 가이드) 권장 방식 ✅
스페이스 2칸가능하지만 비권장
탭(Tab) 문자가능하지만 비권장

권장사항: 스페이스 4칸을 사용하세요. 대부분의 Python IDE와 편집기는 Tab 키를 누르면 자동으로 스페이스 4칸을 입력합니다.

# 권장하는 방식 (스페이스 4칸)
if True:
    print('첫 번째 줄')
    print('두 번째 줄')

코드 블록(Code Block)

코드 블록은 특정한 동작을 위해 코드가 모여 있는 상태를 뜻합니다. 파이썬은 들여쓰기를 기준으로 코드 블록을 구성합니다.

# 코드 블록 예시
if True:
    # 이 부분이 하나의 코드 블록
    print('블록 안')
    print('블록 안')
print('블록 밖')

들여쓰기 규칙

  1. 같은 블록은 들여쓰기 칸 수가 같아야 합니다
# 올바른 예
if True:
    print('A')  # 스페이스 4칸
    print('B')  # 스페이스 4칸

# 잘못된 예
if True:
    print('A')  # 스페이스 4칸
      print('B')  # 스페이스 6칸 - IndentationError!
  1. 공백(스페이스)과 탭 문자를 섞어 쓰면 안 됩니다
# 잘못된 예
if True:
    print('A')  # 스페이스 4칸
	print('B')  # 탭 문자 - 에러 발생 가능!

대부분의 최신 편집기는 탭과 스페이스를 섞어 쓰는 것을 방지해주지만, 주의가 필요합니다.

들여쓰기로 구조 표현하기

파이썬의 들여쓰기는 코드의 논리적 구조를 시각적으로 명확하게 보여줍니다.

# 중첩된 코드 블록
if True:
    print('첫 번째 블록')
    if True:
        print('두 번째 블록 (중첩)')
        print('두 번째 블록 계속')
    print('다시 첫 번째 블록')
print('블록 밖')

이 코드의 구조:

블록 밖
└─ 첫 번째 블록
   ├─ 두 번째 블록 (중첩)
   │  └─ 두 번째 블록 계속
   └─ 다시 첫 번째 블록
블록 밖

PEP 8 - 파이썬 스타일 가이드

PEP 8은 파이썬 코드를 어떻게 작성해야 하는지에 대한 공식 스타일 가이드입니다. 주요 규칙:

  • 들여쓰기: 스페이스 4칸
  • 한 줄 최대 길이: 79자
  • 함수와 클래스 사이: 빈 줄 2개
  • 함수 내부: 빈 줄 1개로 논리적 구분
# PEP 8을 따르는 코드 예시
def first_function():
    print('첫 번째 함수')


def second_function():  # 함수 사이 빈 줄 2개
    print('두 번째 함수')

자동 포맷팅 도구

들여쓰기와 스타일을 자동으로 맞춰주는 도구들이 있습니다:

  • black: 자동 코드 포맷터
  • autopep8: PEP 8 자동 적용
  • pylint: 코드 품질 검사

VS Code나 PyCharm 같은 IDE에서 이러한 도구를 설정하면, 코드 저장 시 자동으로 포맷팅됩니다.

왜 파이썬은 들여쓰기를 강제할까?

다른 언어들은 중괄호({})로 코드 블록을 구분합니다. 파이썬은 중괄호 대신 들여쓰기를 사용함으로써:

  1. 가독성 향상: 들여쓰기가 곧 구조이므로 코드를 읽기 쉬움
  2. 일관성: 모든 파이썬 코드가 비슷한 스타일을 유지
  3. 단순함: 중괄호를 쓸지 말지 고민할 필요 없음

이는 파이썬의 철학인 "아름다운 것이 추한 것보다 낫다(Beautiful is better than ugly)"를 반영합니다.


profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글