
파이썬에서 변수는 값을 저장하는 이름표 역할을 하며, 별도의 타입 선언 없이 변수명 = 값 형태로 생성합니다. 자료형은 값의 종류를 나타내며, 연산자는 값들 사이의 계산이나 비교를 수행하는 기호입니다. 이 세 요소는 파이썬 문법의 가장 기초 단위입니다.
기능/스펙
기본 자료형 - 정수형(int): 예) 10, -5 - 실수형(float): 예) 3.14 - 문자열(str): 예) "hello" - 불리언(bool): True, False
주요 연산자 - 산술 연산자: +, -, *, /(나눗셈, 결과는 float), //(몫), %(나머지), **(거듭제곱) - 비교 연산자: ==, !=, >, <, >=, <= - 논리 연산자: and, or, not - 할당 연산자: =, +=, -= 등
x = 10
y = 3
print(x / y) # 3.3333333333333335
print(x // y) # 3
print(x % y) # 1
print(x ** 2) # 100
파이썬은 동적 타이핑 언어이므로 type() 함수로 현재 값의 자료형을 실행 중에 확인할 수 있습니다.
장단점
장점 - 타입을 매번 선언하지 않아도 되어 코드가 간결함 - type(), isinstance() 등으로 자료형을 유연하게 확인·검증할 수 있음
단점 - 타입을 명시하지 않다 보니, 의도치 않게 다른 타입의 값이 변수에 들어가도 실행 전까지 알아차리기 어려움 - 정수 나눗셈(//)과 일반 나눗셈(/)을 혼동하기 쉬움 (특히 Python 2 경험자의 경우, Python 2에서는 /가 정수 나눗셈으로 동작했으나 Python 3부터 실수 나눗셈으로 변경됨)
비판적 시각
동적 타이핑에 대한 대표적 비판은 "실행 전에는 타입 오류를 잡기 어렵다"는 점입니다. 이를 보완하기 위해 파이썬 3.5부터 타입 힌트(PEP 484) 문법이 도입되었으며, mypy와 같은 정적 타입 검사 도구를 함께 사용하는 것이 실무에서 권장됩니다. 다만 타입 힌트는 강제성이 없는 선택적 기능이므로, 개발자가 실제로 작성하고 검사 도구를 돌리지 않으면 효과가 없다는 한계도 있습니다.
추천 대상
- 프로그래밍을 처음 배우는 입문자 (변수와 자료형은 모든 언어의 공통 기초 개념)
- 다른 언어(Java, C 등)에서 타입 선언에 익숙했던 사람이 파이썬의 유연함에 적응하려는 경우
FAQ
Q1. 파이썬에서 변수를 선언할 때 타입을 꼭 써야 하나요? 아닙니다. x = 10처럼 값을 대입하는 순간 타입이 자동으로 결정됩니다. 다만 가독성을 위해 타입 힌트(x: int = 10)를 선택적으로 쓸 수 있습니다.
Q2. /와 //의 차이는 무엇인가요? /는 결과를 항상 float(실수)로 반환하는 일반 나눗셈이고, //는 소수점 이하를 버린 정수 몫을 반환하는 연산자입니다.
Q3. 문자열과 숫자를 +로 더할 수 있나요? 아닙니다. 파이썬은 서로 다른 타입 간 자동 형변환을 하지 않으므로, "1" + 1은 TypeError를 발생시킵니다. str()이나 int()로 명시적으로 변환해야 합니다.
출처
- Python 공식 문서, "The Python Tutorial – 3. An Informal Introduction to Python" (docs.python.org)
- Python Software Foundation, PEP 484 – Type Hints
- Python 공식 문서, "What's New in Python 3.0" (division operator 변경 사항, docs.python.org)