본문 바로가기
자기 개발/Python

파이썬(Python) 공부 2편 — 변수(Variable)와 자료형(Data Type) 완전 정리 | int·float·str·bool·type()·형변환

by conrad 2026. 3. 26.
02 / 15 Python 공부 시리즈 — 변수 & 자료형
← 1편: 파이썬이란? 설치 & 환경설정 보러 가기
Python 공부 시리즈 · 2편 | 변수 · 자료형 · 형변환

파이썬(Python) 공부 2편
변수(Variable)와 자료형(Data Type) 완전 정리

파이썬을 배울 때 가장 먼저 마주치는 개념이 변수와 자료형입니다. 변수는 데이터를 담는 그릇이고, 자료형은 그 안에 담긴 데이터의 종류를 뜻합니다. 이 두 가지를 제대로 이해해야 이후에 배우는 조건문, 반복문, 함수 등 모든 개념의 토대가 됩니다.

변수 선언과 할당 int · float · str · bool type() 함수 동적 타이핑 형변환(Type Casting)

📦 변수(Variable)란 무엇인가

변수는 데이터를 저장하는 이름이 붙은 공간입니다. 파이썬에서는 = 기호(대입 연산자)를 사용해 변수에 값을 할당합니다. 수학의 등호(같다)와 다르게, 파이썬의 =는 "오른쪽 값을 왼쪽 변수에 넣어라"는 뜻입니다.

 
variable_basic.py
# 변수 선언과 값 할당
name = "파이썬"          # 문자열 할당
age = 10              # 정수 할당
version = 3.12        # 실수 할당
is_fun = True          # 불리언 할당

# 변수 값 출력
print(name)             # 파이썬
print(age)              # 10

# 변수 값 변경 (언제든지 다른 값으로 바꿀 수 있다)
age = 32
print(age)              # 32

# 여러 변수 한 줄에 할당
x, y, z = 1, 2, 3
print(x, y, z)         # 1 2 3

# 같은 값 여러 변수에 동시 할당
a = b = c = 0
print(a, b, c)         # 0 0 0
Python 코드 화면 변수 자료형 ▲ 변수는 데이터를 저장하는 이름표이다. 파이썬에서는 변수의 자료형을 미리 선언하지 않아도 되는 '동적 타이핑' 방식을 사용한다. (출처: Unsplash / 참고 이미지)
📝
반드시 알아야 할 규칙 파이썬 변수 이름 규칙 (Naming Convention)
  • 사용 가능: 영문자(a-z, A-Z), 숫자(0-9), 밑줄(_)
  • 숫자로 시작 불가: 1name → 오류 / name1 → 가능
  • 대소문자 구분: Namename은 서로 다른 변수
  • 예약어(키워드) 사용 불가: if, for, while, class, True, False
  • 파이썬 관례 (PEP 8): 변수·함수명은 소문자 + 밑줄 사용 → my_name, total_price
  • 의미 있는 이름: x보다 user_age처럼 무엇을 담는지 알 수 있는 이름 권장
💡 PEP 8은 파이썬 공식 코드 스타일 가이드입니다. 혼자 공부할 때부터 PEP 8 관례를 익혀두면 협업 시 큰 도움이 됩니다.

🔄 동적 타이핑(Dynamic Typing) — 파이썬의 핵심 특징

Java, C, C++ 같은 언어는 변수를 만들 때 자료형을 미리 선언해야 합니다. 반면 파이썬은 값을 넣는 순간 자동으로 자료형이 결정됩니다. 이를 동적 타이핑(Dynamic Typing)이라고 합니다.

 
dynamic_typing.py
# Java라면: int x = 10; 처럼 타입 명시 필요
# 파이썬은 타입 선언 없이 그냥 할당
x = 10         # 자동으로 int
x = "hello"  # 이제 str로 바뀜 (파이썬에서는 가능)
x = 3.14      # 이제 float로 바뀜

# type() 함수로 현재 자료형 확인
a = 100
print(type(a))   # <class 'int'>

b = "파이썬"
print(type(b))   # <class 'str'>

c = True
print(type(c))   # <class 'bool'>

📋 파이썬 기본 자료형 4가지

int 정수형 (Integer)

소수점 없는 양의 정수, 음의 정수, 0을 담습니다.
예시: 0, 1, -5, 100, -999
파이썬의 int는 크기 제한이 없어 매우 큰 수도 표현 가능합니다.

float 실수형 (Float)

소수점이 있는 숫자를 담습니다.
예시: 3.14, -0.5, 1.0, 2.718
컴퓨터 내부의 부동소수점 표현 방식으로 저장됩니다.

str 문자열 (String)

텍스트 데이터를 담습니다.
예시: "Hello", '파이썬', "123"
작은따옴표(' ') 또는 큰따옴표(" ") 모두 사용 가능합니다.

bool 불리언 (Boolean)

참(True) 또는 거짓(False) 두 가지 값만 가집니다.
예시: True, False
조건문·비교 연산의 결과로 자주 등장합니다.

1 int — 정수형 완전 정복

 
int_example.py
# 정수 선언
a = 10
b = -3
c = 0

# 기본 사칙연산
print(a + b)    # 7    (덧셈)
print(a - b)    # 13   (뺄셈)
print(a * b)    # -30  (곱셈)
print(a / b)    # -3.333... (나눗셈, 결과는 float)
print(a // b)   # -4   (정수 나눗셈, 몫)
print(a % b)    # -2   (나머지, 모듈로)
print(a ** 2)   # 100  (거듭제곱)

# 2진수, 8진수, 16진수 표현
print(0b1010)   # 10  (2진수)
print(0o12)     # 10  (8진수)
print(0x0A)     # 10  (16진수)
⚠️ 나눗셈(/) 결과는 항상 float

파이썬 3에서 / 연산자는 정수끼리 나눠도 항상 float을 반환합니다.

  • 10 / 25.0 (float) ← 파이썬 3
  • 10 // 25 (int) ← 정수 결과가 필요하면 // 사용

F float — 실수형과 부동소수점 주의사항

 
float_example.py
pi = 3.14159
temp = -0.5
big = 1.5e10      # 1.5 × 10^10 = 15000000000.0 (지수 표기)

print(pi + 1)      # 4.14159
print(type(pi))   # <class 'float'>

# ⚠️ 부동소수점 오차 — 파이썬만의 문제가 아닌 컴퓨터 공통 현상
print(0.1 + 0.2)   # 0.30000000000000004 ← 미세한 오차 발생

# 정밀한 소수 계산이 필요하면 round() 또는 decimal 모듈 활용
print(round(0.1 + 0.2, 2))  # 0.3

S str — 문자열 기초 (심화는 3편에서)

 
string_basic.py
# 작은따옴표, 큰따옴표 모두 가능
s1 = 'Hello'
s2 = "World"
s3 = """여러 줄
문자열 가능"""

# 문자열 연결 (+) 과 반복 (*)
print(s1 + " " + s2)   # Hello World
print("Ha" * 3)         # HaHaHa

# f-string (파이썬 3.6+ 권장 방식) — 변수를 문자열 안에 넣기
name = "파이썬"
ver = 3.12
print(f"안녕하세요, {name} {ver}입니다!")
# 안녕하세요, 파이썬 3.12입니다!

# 문자열 길이
print(len("Hello"))    # 5

# 숫자처럼 보여도 따옴표 안에 있으면 문자열
num_str = "123"
print(type(num_str))   # <class 'str'>

B bool — 불리언과 비교 연산자

 
bool_example.py
# 불리언 값: True 또는 False (대문자 시작)
is_student = True
is_adult = False

# 비교 연산 결과는 bool
print(10 > 5)      # True
print(10 == 5)     # False  (같다 비교는 == 두 개)
print(10 != 5)     # True   (다르다)
print(10 >= 10)    # True   (크거나 같다)

# 논리 연산자 (and, or, not)
print(True and False)   # False (둘 다 True여야 True)
print(True or False)    # True  (하나만 True여도 True)
print(not True)          # False (반전)

# bool은 int처럼 쓸 수 있음 (True=1, False=0)
print(True + 1)           # 2
print(False + 10)         # 10

🔎 type() 함수 — 자료형 확인하기

type()은 변수나 값의 자료형을 확인하는 내장 함수입니다. 파이썬 공부 초반에 자주 활용하면 자료형 감각을 빠르게 익힐 수 있습니다.

 
type_check.py
print(type(42))          # <class 'int'>
print(type(3.14))        # <class 'float'>
print(type("hello"))    # <class 'str'>
print(type(True))        # <class 'bool'>
print(type(None))        # <class 'NoneType'>

# isinstance()로 특정 타입 여부 확인
x = 10
print(isinstance(x, int))    # True
print(isinstance(x, str))    # False
None — 파이썬의 '아무것도 없음'

None은 파이썬의 특수한 값으로, "아무것도 없다"는 의미를 가집니다. 자료형은 NoneType이며, 다른 언어의 null과 유사합니다.

  • 함수가 명시적으로 값을 반환하지 않을 때 자동으로 None 반환
  • 변수를 초기화할 때 result = None 처럼 사용
  • None 비교는 == 대신 is 사용 권장: if x is None:

🔁 형변환(Type Casting) — 자료형 바꾸기

한 자료형을 다른 자료형으로 변환하는 것을 형변환(Type Casting)이라고 합니다. 파이썬에서는 int(), float(), str(), bool() 함수를 사용합니다.

함수 변환 대상 예시 코드 결과
int() float, str → int int("42") 42
int() float → int (소수점 버림) int(3.9) 3
float() int, str → float float("3.14") 3.14
str() int, float → str str(100) "100"
bool() int, str → bool bool(0) False
bool() 0이 아닌 값 → True bool(42) True
 
type_casting.py
# str → int 변환 (입력값 처리에 자주 사용)
user_input = "25"               # 문자열 "25"
age = int(user_input)           # 정수 25로 변환
print(age + 1)                  # 26

# int → str 변환 (숫자를 문자열에 연결할 때)
score = 95
print("점수: " + str(score))    # 점수: 95
# 또는 f-string 사용 (더 권장)
print(f"점수: {score}")           # 점수: 95

# bool() — 거짓(False)이 되는 값들
print(bool(0))       # False
print(bool(""))      # False (빈 문자열)
print(bool(None))    # False
print(bool(1))       # True
print(bool("hi"))    # True

# ⚠️ 잘못된 형변환은 오류 발생
# int("hello")  → ValueError!
# int("3.14")   → ValueError! (float 형식의 str은 int()로 직접 변환 불가)
# int(float("3.14")) → 3  (이렇게 해야 함)
초보자가 자주 하는 실수 문자열과 숫자를 + 로 연결하면 TypeError 발생

파이썬에서 문자열과 숫자는 + 연산자로 직접 연결할 수 없습니다.

age = 25
# ❌ 오류 발생
# print("나이: " + age)  → TypeError!

# ✅ 해결 방법 1: str()로 변환
print("나이: " + str(age))     # 나이: 25

# ✅ 해결 방법 2: f-string 사용 (권장)
print(f"나이: {age}")            # 나이: 25

📝 2편 실습 문제 — 직접 풀어보기

실습 1 — 나의 정보 출력하기

아래 조건에 맞는 변수를 만들고 f-string으로 출력해보세요.

  • 이름(name), 나이(age), 키(height), 파이썬 공부 중 여부(is_studying) 변수 만들기
  • type()으로 각 변수의 자료형 출력
  • f-string으로 "저는 [이름]이고 [나이]살입니다. 키는 [키]cm입니다." 출력
실습 2 — 형변환 연습
  • num_str = "100" → int로 변환 후 50을 더해서 출력
  • price = 1500 → str로 변환 후 "가격: " 앞에 붙여서 출력
  • score = 0 → bool로 변환하면 True인지 False인지 확인
 
practice_02.py — 실습 예시 답안
# 실습 1
name = "홍길동"
age = 28
height = 175.5
is_studying = True

print(type(name), type(age), type(height), type(is_studying))
print(f"저는 {name}이고 {age}살입니다. 키는 {height}cm입니다.")

# 실습 2
num_str = "100"
print(int(num_str) + 50)          # 150

price = 1500
print("가격: " + str(price))      # 가격: 1500

score = 0
print(bool(score))               # False
2편 핵심 요약
  • 변수: 데이터를 저장하는 이름 공간 / =으로 값 할당 / 언제든 변경 가능
  • 변수 이름 규칙: 영문·숫자·밑줄 / 숫자 시작 불가 / 대소문자 구분 / 예약어 불가 / 소문자_밑줄 관례
  • 동적 타이핑: 값을 넣는 순간 자료형 자동 결정 — 선언 없이 바로 사용
  • int: 정수 / + - * / // % ** 연산 / /는 항상 float 반환
  • float: 실수 / 부동소수점 오차 주의 / round()로 보완
  • str: 문자열 / 따옴표 안에 텍스트 / f"...{변수}..." f-string 권장
  • bool: True / False / 비교·논리 연산 결과 / 0·빈값·None → False
  • type(): 자료형 확인 / isinstance()로 특정 타입 여부 확인
  • 형변환: int() · float() · str() · bool() / 문자열+숫자 직접 연결 불가 → TypeError
다음 편 예고 3편 — 문자열(String) 완전 정복

인덱싱·슬라이싱 / 문자열 메서드 / f-string 심화 / 이스케이프 문자

🐍

※ 본 포스팅은 Python 3 공식 문서(docs.python.org)를 기반으로 작성된 학습용 콘텐츠입니다. 코드 예시는 Python 3.10 이상 환경에서 테스트되었습니다. 버전에 따라 일부 동작이 다를 수 있으므로 실습 시 python --version으로 버전을 확인하시기 바랍니다.