파이썬 문법 정리 완벽 가이드 – 초보자도 바로 이해하는 핵심 문법 총정리

파이썬 문법 정리가 필요한데 어디서부터 시작해야 할지 막막하셨나요? 파이썬은 전 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나이지만, 처음 접하면 낯선 개념들이 쏟아져 당황스러울 수 있습니다. 이 글에서는 변수와 자료형부터 함수, 클래스, 예외 처리까지 파이썬의 핵심 문법을 초보자도 이해할 수 있도록 단계별로 풀어서 설명합니다. 끝까지 읽으면 파이썬 기초 문법의 전체 그림이 한눈에 잡힐 것입니다.


목차

  1. 파이썬이란? 언어의 특징과 기초 개념
  2. 파이썬 문법의 핵심 원리 – 들여쓰기와 동적 타이핑
  3. 변수·자료형·연산자 – 파이썬의 기본 재료
  4. 조건문·반복문·함수 – 흐름을 제어하는 핵심 문법
  5. 리스트·딕셔너리·클래스 – 실무에서 자주 쓰는 문법
  6. 예외 처리와 파일 입출력 – 전문가처럼 코딩하는 법

1. 파이썬이란? 언어의 특징과 기초 개념

파이썬(Python)은 1991년 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어입니다. 이름은 뱀이 아니라 영국의 코미디 그룹 ‘몬티 파이썬(Monty Python)’에서 따왔습니다. 현재는 웹 개발, 데이터 분석, 인공지능, 자동화 스크립트 등 거의 모든 분야에서 활발히 사용되고 있습니다.

파이썬이 인기 있는 이유

파이썬이 전 세계 개발자들에게 사랑받는 이유는 크게 세 가지입니다.

첫째, 문법이 쉽고 읽기 쉽습니다. 영어 문장과 비슷한 구조로 이루어져 있어 프로그래밍을 처음 배우는 사람도 비교적 빠르게 익힐 수 있습니다. 예를 들어 화면에 글자를 출력하는 코드가 단 한 줄입니다.

python

print("안녕하세요, 파이썬!")

둘째, 방대한 라이브러리 생태계를 갖추고 있습니다. NumPy(수치 계산), Pandas(데이터 분석), Django(웹 개발), TensorFlow(딥러닝) 등 목적에 맞는 도구를 바로 가져다 쓸 수 있습니다.

셋째, 커뮤니티가 활성화되어 있습니다. 전 세계 수백만 명의 개발자가 질문과 답변, 튜토리얼을 공유하고 있어 막혔을 때 도움을 받기 쉽습니다.

파이썬 설치와 실행 환경

파이썬을 시작하려면 먼저 공식 사이트(python.org)에서 최신 버전을 다운로드합니다. 설치 후에는 다음과 같은 환경에서 코드를 작성할 수 있습니다.

환경특징추천 대상
IDLE파이썬 기본 내장 에디터입문자
VS Code가볍고 확장성 높은 에디터일반 개발자
PyCharm파이썬 전용 강력한 IDE중급 이상
Jupyter Notebook셀 단위 실행, 시각화 강점데이터 분석가
Google Colab설치 없이 브라우저에서 실행빠른 입문자

입문자라면 설치 없이 바로 사용할 수 있는 Google Colab을 가장 먼저 추천합니다.


2. 파이썬 문법의 핵심 원리 – 들여쓰기와 동적 타이핑

파이썬을 다른 언어와 구분 짓는 가장 독특한 특징 두 가지가 있습니다. 바로 **들여쓰기(Indentation)**와 **동적 타이핑(Dynamic Typing)**입니다. 이 두 가지 원리를 제대로 이해해야 파이썬 문법 전체가 자연스럽게 이해됩니다.

들여쓰기 – 파이썬의 가장 중요한 규칙

C, Java 같은 언어는 코드 블록을 중괄호 {}로 구분합니다. 파이썬은 다릅니다. **들여쓰기(스페이스 4칸 또는 탭 1개)**로 코드의 범위를 구분합니다.

python

# 올바른 들여쓰기
if True:
    print("이 줄은 if 블록 안에 있습니다")
    print("이 줄도 마찬가지입니다")
print("이 줄은 if 블록 밖에 있습니다")

# 잘못된 들여쓰기 → IndentationError 발생
if True:
print("들여쓰기가 없으면 오류!")  # ❌

들여쓰기가 맞지 않으면 IndentationError가 발생합니다. 팀 내에서 탭과 스페이스를 혼용하면 오류가 생기므로, 스페이스 4칸을 표준으로 통일하는 것이 좋습니다(PEP 8 공식 권장 사항).

동적 타이핑 – 자료형을 자동으로 결정

Java나 C에서는 변수를 선언할 때 자료형을 명시해야 합니다(int x = 5;). 파이썬은 값을 넣는 순간 자료형이 자동으로 결정됩니다.

python

x = 10        # 정수(int)로 자동 결정
x = "안녕"    # 문자열(str)로 자동 변경
x = 3.14      # 실수(float)로 자동 변경

이 덕분에 코드가 짧고 직관적이지만, 의도치 않은 자료형 변경으로 버그가 생길 수 있으니 주의해야 합니다. type() 함수로 현재 자료형을 언제든지 확인할 수 있습니다.

python

x = 42
print(type(x))  # <class 'int'>

3. 변수·자료형·연산자 – 파이썬의 기본 재료

프로그래밍의 가장 기본 단위는 데이터입니다. 파이썬에서 데이터를 담는 그릇이 변수이고, 데이터의 종류가 자료형입니다. 이 둘을 조작하는 도구가 연산자입니다.

변수 선언과 명명 규칙

파이썬에서 변수 선언은 매우 간단합니다. 변수명 = 값 형식으로 작성합니다.

python

name = "홍길동"       # 문자열 변수
age = 25              # 정수 변수
height = 175.5        # 실수 변수
is_student = True     # 불리언 변수

변수 이름을 지을 때는 다음 규칙을 따라야 합니다.

  • 숫자로 시작할 수 없음 (1name ❌)
  • 공백 사용 불가, 언더스코어(_) 사용 (my_name ✓)
  • 파이썬 예약어 사용 불가 (if, for, class 등)
  • 대소문자 구분 (Namename은 다른 변수)

파이썬의 주요 자료형

파이썬에는 기본적으로 다음과 같은 자료형이 있습니다.

자료형영문명예시설명
정수int10, -3, 0소수점 없는 숫자
실수float3.14, -0.5소수점 있는 숫자
문자열str"안녕", 'hello'텍스트 데이터
불리언boolTrue, False참/거짓
없음NoneTypeNone값이 없음을 표현

연산자 종류와 사용법

파이썬의 연산자는 크게 산술, 비교, 논리 연산자로 나뉩니다.

python

# 산술 연산자
print(10 + 3)   # 13  (덧셈)
print(10 - 3)   # 7   (뺄셈)
print(10 * 3)   # 30  (곱셈)
print(10 / 3)   # 3.333... (나눗셈, 실수 반환)
print(10 // 3)  # 3   (몫)
print(10 % 3)   # 1   (나머지)
print(2 ** 3)   # 8   (거듭제곱)

# 비교 연산자 (결과는 True 또는 False)
print(10 > 3)   # True
print(10 == 3)  # False
print(10 != 3)  # True

# 논리 연산자
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

문자열 연산도 직관적입니다.

python

first = "파이썬"
second = " 문법"
print(first + second)   # 파이썬 문법 (연결)
print(first * 3)        # 파이썬파이썬파이썬 (반복)
print(len(first))       # 3 (길이)
print(first[0])         # 파 (인덱싱, 0부터 시작)
print(first[0:2])       # 파이 (슬라이싱)

4. 조건문·반복문·함수 – 흐름을 제어하는 핵심 문법

변수와 자료형이 ‘재료’라면, 조건문과 반복문은 프로그램의 ‘흐름’을 만드는 도구입니다. 함수는 이 흐름을 재사용 가능한 단위로 묶어줍니다. 파이썬 문법 정리에서 가장 핵심이 되는 파트입니다.

조건문 (if / elif / else)

특정 조건에 따라 다른 코드를 실행하고 싶을 때 사용합니다.

python

score = 85

if score >= 90:
    print("A 등급")
elif score >= 80:
    print("B 등급")    # 이 줄이 출력됨
elif score >= 70:
    print("C 등급")
else:
    print("D 등급")

조건식에는 비교 연산자 외에도 in, not in, is 등을 활용할 수 있습니다.

python

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

if "사과" in fruits:
    print("사과가 있습니다")    # 출력됨

if "수박" not in fruits:
    print("수박은 없습니다")    # 출력됨

반복문 (for / while)

같은 작업을 반복할 때 사용합니다. 파이썬에는 forwhile 두 종류가 있습니다.

for 반복문 – 정해진 횟수 또는 시퀀스를 순서대로 반복

python

# range() 함수와 함께 사용
for i in range(5):          # 0, 1, 2, 3, 4
    print(i, end=" ")       # 0 1 2 3 4

# 리스트 순회
colors = ["빨강", "파랑", "초록"]
for color in colors:
    print(color)

# enumerate로 인덱스와 값 함께 사용
for index, color in enumerate(colors):
    print(f"{index}: {color}")
    # 0: 빨강 / 1: 파랑 / 2: 초록

while 반복문 – 조건이 참인 동안 계속 반복

python

count = 0
while count < 5:
    print(count)
    count += 1      # count = count + 1

# break: 반복 강제 종료
while True:
    user_input = input("종료하려면 'q' 입력: ")
    if user_input == "q":
        break

반복문 제어 키워드:

  • break → 반복문 즉시 종료
  • continue → 현재 반복 건너뛰고 다음으로
  • pass → 아무것도 하지 않음 (자리 표시용)

함수 정의와 호출 (def)

함수는 특정 작업을 하는 코드를 이름 붙여 묶어 놓은 것입니다. 한 번 정의하면 여러 곳에서 재사용할 수 있어 코드가 간결해집니다.

python

# 기본 함수 정의
def greet(name):
    print(f"안녕하세요, {name}님!")

greet("홍길동")    # 안녕하세요, 홍길동님!

# 반환값이 있는 함수
def add(a, b):
    return a + b

result = add(3, 5)
print(result)      # 8

# 기본값 매개변수
def power(base, exp=2):
    return base ** exp

print(power(3))     # 9  (exp 생략 시 기본값 2 사용)
print(power(3, 3))  # 27

# 가변 인수 (*args, **kwargs)
def total(*args):
    return sum(args)

print(total(1, 2, 3, 4, 5))    # 15

5. 리스트·딕셔너리·클래스 – 실무에서 자주 쓰는 문법

실무 파이썬 코드에서 가장 자주 등장하는 자료구조는 리스트딕셔너리입니다. 그리고 코드를 체계적으로 구성하기 위해 클래스를 활용합니다.

리스트 (List) – 순서가 있는 데이터 묶음

리스트는 여러 데이터를 순서대로 담는 자료구조입니다. 대괄호 []로 표현합니다.

python

# 리스트 생성
numbers = [1, 2, 3, 4, 5]
mixed = [1, "안녕", True, 3.14]  # 다양한 자료형 혼합 가능

# 인덱싱과 슬라이싱
print(numbers[0])       # 1  (첫 번째 요소)
print(numbers[-1])      # 5  (마지막 요소)
print(numbers[1:3])     # [2, 3]

# 주요 메서드
numbers.append(6)       # 끝에 추가 → [1,2,3,4,5,6]
numbers.insert(0, 0)    # 0번 위치에 삽입 → [0,1,2,3,4,5,6]
numbers.remove(3)       # 값 3 제거
numbers.pop()           # 마지막 요소 제거 및 반환
numbers.sort()          # 오름차순 정렬
numbers.reverse()       # 역순 정렬
print(len(numbers))     # 리스트 길이

# 리스트 컴프리헨션 (Comprehension) – 파이썬다운 표현
squares = [x**2 for x in range(1, 6)]
print(squares)          # [1, 4, 9, 16, 25]

even = [x for x in range(10) if x % 2 == 0]
print(even)             # [0, 2, 4, 6, 8]

딕셔너리 (Dictionary) – 키-값 쌍의 데이터

딕셔너리는 키(Key): 값(Value) 쌍으로 데이터를 저장합니다. 중괄호 {}로 표현하며, 키로 값을 빠르게 찾을 수 있습니다.

python

# 딕셔너리 생성
person = {
    "name": "홍길동",
    "age": 25,
    "job": "개발자"
}

# 값 접근
print(person["name"])           # 홍길동
print(person.get("age"))        # 25
print(person.get("email", "없음"))  # 없음 (키가 없을 때 기본값)

# 값 추가·수정·삭제
person["email"] = "hong@example.com"  # 추가
person["age"] = 26                    # 수정
del person["job"]                     # 삭제

# 딕셔너리 순회
for key, value in person.items():
    print(f"{key}: {value}")

# 주요 메서드
print(person.keys())    # 키 목록
print(person.values())  # 값 목록
print(person.items())   # 키-값 쌍 목록

튜플(Tuple)과 집합(Set)도 자주 쓰이는 자료구조입니다.

python

# 튜플 – 변경 불가능한 리스트
coords = (37.5665, 126.9780)   # 위도, 경도
print(coords[0])               # 37.5665

# 집합 – 중복 없는 데이터
fruits = {"사과", "바나나", "사과", "포도"}
print(fruits)   # {'사과', '바나나', '포도'} (중복 제거)

클래스 (Class) – 객체 지향 프로그래밍의 기초

클래스는 관련된 변수(속성)와 함수(메서드)를 하나로 묶은 설계도입니다. 이 설계도로 만든 실체를 **객체(Object)**라고 합니다.

python

class Dog:
    # __init__: 객체 생성 시 자동으로 실행되는 메서드
    def __init__(self, name, breed):
        self.name = name      # 속성(attribute)
        self.breed = breed

    # 메서드(method) 정의
    def bark(self):
        print(f"{self.name}이(가) 짖습니다: 멍멍!")

    def info(self):
        print(f"이름: {self.name}, 품종: {self.breed}")

# 객체 생성
dog1 = Dog("초코", "포메라니안")
dog2 = Dog("바둑이", "진돗개")

# 메서드 호출
dog1.bark()     # 초코이(가) 짖습니다: 멍멍!
dog2.info()     # 이름: 바둑이, 품종: 진돗개

# 상속 (Inheritance) – 기존 클래스를 물려받아 확장
class GuideDog(Dog):
    def guide(self):
        print(f"{self.name}이(가) 시각장애인을 안내합니다.")

guide = GuideDog("사랑이", "래브라도")
guide.bark()    # 부모 클래스 메서드 사용 가능
guide.guide()   # 자식 클래스 메서드

6. 예외 처리와 파일 입출력 – 전문가처럼 코딩하는 법

초보자와 숙련자를 나누는 기준 중 하나가 바로 예외 처리입니다. 코드가 실행 중에 예상치 못한 오류가 발생하더라도 프로그램이 멈추지 않도록 처리하는 기법입니다. 파일 입출력과 함께 실무에서 매우 자주 쓰입니다.

예외 처리 (try / except / finally)

오류가 발생할 가능성이 있는 코드를 try 블록에 넣고, 오류 발생 시 처리할 내용을 except 블록에 작성합니다.

python

# 기본 예외 처리
try:
    number = int(input("숫자를 입력하세요: "))
    result = 10 / number
    print(f"결과: {result}")
except ValueError:
    print("숫자가 아닌 값을 입력했습니다.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    print(f"예상치 못한 오류 발생: {e}")
else:
    print("오류 없이 정상 실행되었습니다.")    # try 성공 시 실행
finally:
    print("항상 실행되는 블록입니다.")         # 오류 여부 상관없이 실행

자주 발생하는 예외 유형:

예외 이름발생 상황
ValueError잘못된 값 (숫자 자리에 문자 입력 등)
TypeError잘못된 자료형 연산
ZeroDivisionError0으로 나누기
IndexError리스트 범위 초과
KeyError딕셔너리에 없는 키 접근
FileNotFoundError존재하지 않는 파일 열기

파일 입출력 (File I/O)

파이썬에서 파일을 읽고 쓰는 기본 방법입니다.

python

# 파일 쓰기
with open("test.txt", "w", encoding="utf-8") as f:
    f.write("파이썬 파일 입출력 예제입니다.\n")
    f.write("두 번째 줄입니다.\n")

# 파일 읽기
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()         # 전체 읽기
    print(content)

# 한 줄씩 읽기
with open("test.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())    # 줄바꿈 문자 제거

with 문을 사용하면 파일 작업이 끝난 후 자동으로 파일을 닫아주므로, 리소스 누수 없이 안전하게 파일을 다룰 수 있습니다.

모듈과 패키지 – 코드 재사용의 핵심

파이썬의 강점 중 하나는 방대한 표준 라이브러리와 외부 패키지입니다.

python

# 표준 라이브러리 사용
import math
print(math.sqrt(16))       # 4.0
print(math.pi)             # 3.14159...

import random
print(random.randint(1, 10))   # 1~10 사이 랜덤 정수

import datetime
today = datetime.date.today()
print(today)               # 오늘 날짜 출력

# 외부 패키지 설치 및 사용 (터미널에서)
# pip install requests
import requests
response = requests.get("https://api.example.com/data")
print(response.status_code)   # 200 (성공)

결론

파이썬 문법 정리의 핵심은 들여쓰기 규칙, 자료형과 연산자, 조건문·반복문·함수라는 세 가지 기둥을 먼저 단단히 다지는 것입니다. 리스트·딕셔너리·클래스·예외 처리는 그 위에 쌓이는 실무 역량이며, 기초가 탄탄할수록 빠르게 습득할 수 있습니다. 오늘 정리한 파이썬 문법 정리 내용을 바탕으로 직접 코드를 작성해보는 것이 가장 빠른 학습법입니다.

지금 바로 Google Colab을 열고 이 글에 나온 예제 코드를 한 줄씩 직접 입력해 보세요. 손으로 쳐보는 것만으로도 실력이 눈에 띄게 향상됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다