개발/python

파이썬 변수와 자료형 쉽게 이해하기: 초보자를 위한 Python 기초

notebase 2026. 5. 20. 09:31

파이썬 변수와 자료형이 헷갈리나요? Python 3.14.5 공식 문서 흐름에 맞춰 변수, int, float, str, bool, None, list, dict, type() 사용법까지 초보자 기준으로 정리했습니다.

 

파이썬 변수와 자료형은 Python을 처음 배울 때 가장 먼저 만나는 개념입니다.
그런데 생각보다 많은 초보자가 여기서 헷갈립니다.

name = "Python" 같은 코드는 짧아 보입니다.
하지만 이 한 줄 안에는 변수, 값, 자료형, 대입이라는 중요한 개념이 모두 들어 있습니다.

이번 글에서는 2026년 5월 기준 Python 3.14.5 공식 문서 흐름에 맞춰, 파이썬 변수와 자료형을 초보자 기준으로 정리해보겠습니다.
전공자식 설명보다 “실제로 코드를 읽을 때 어떻게 이해하면 되는지”에 초점을 맞췄습니다.


이 글에서 다루는 내용

  • 파이썬 변수란 무엇인지
  • 변수는 왜 “상자”보다 “이름표”에 가까운지
  • 자료형이 필요한 이유
  • int, float, str, bool, None 이해하기
  • list, tuple, dict, set 차이
  • type() 함수로 자료형 확인하는 방법
  • 초보자가 자주 하는 실수
  • 직접 풀어볼 수 있는 연습문제

변수는 값을 담는 상자일까?

처음 코딩을 배울 때 변수는 보통 “값을 담는 상자”라고 설명합니다.

예를 들어 아래 코드를 보겠습니다.

name = "Python"
age = 35

이 코드를 처음 보면 이렇게 이해하기 쉽습니다.

name이라는 상자에 "Python"을 넣었다.
age라는 상자에 35를 넣었다.

입문 단계에서는 이 설명도 도움이 됩니다.
하지만 파이썬을 조금 더 정확하게 이해하려면 이렇게 보는 편이 낫습니다.

name이라는 이름이 "Python"이라는 값을 가리킨다.
age라는 이름이 35라는 값을 가리킨다.

파이썬에서 변수는 값에 붙이는 이름표에 가깝습니다.

공식 문서에서도 파이썬의 모든 데이터는 객체로 표현된다고 설명합니다. 객체는 각각 정체성(identity), 자료형(type), 값(value)을 가집니다. 초보자 입장에서는 이 말을 전부 외울 필요는 없습니다. 우선은 “변수 이름이 값 객체를 가리킨다” 정도로 이해하면 충분합니다.


변수 만들기: 대입 연산자 =

파이썬에서 변수는 보통 = 기호로 만듭니다.

score = 90

여기서 =는 수학의 “같다”와 완전히 같은 의미가 아닙니다.
코딩에서는 보통 오른쪽 값을 왼쪽 이름에 연결한다는 뜻입니다.

score = 90

이 코드는 이렇게 읽으면 됩니다.

90이라는 값을 score라는 이름으로 부르겠다.

그래서 아래 코드도 가능합니다.

score = 90
score = 95

print(score)

실행 결과는 다음과 같습니다.

95

처음에는 score가 90을 가리켰지만, 다음 줄에서 95를 가리키도록 다시 연결했기 때문입니다.
이것을 재대입이라고 볼 수 있습니다.


변수 이름을 지을 때 기본 규칙

변수 이름은 아무렇게나 지으면 안 됩니다.
초보자는 아래 정도만 기억해도 충분합니다.

규칙 예시
숫자로 시작할 수 없음 1name은 안 됨
공백을 넣을 수 없음 user name은 안 됨
대소문자를 구분함 ageAge는 다름
예약어는 피해야 함 if, for, class 같은 단어는 안 됨
의미 있는 이름이 좋음 a보다 user_age가 읽기 쉬움

예를 들어 이런 변수 이름은 좋습니다.

user_name = "민수"
user_age = 25
is_student = True

반대로 이런 이름은 피하는 것이 좋습니다.

a = "민수"
b = 25
c = True

코드가 짧을 때는 괜찮아 보이지만, 줄이 길어지면 a, b, c가 무엇을 뜻하는지 금방 헷갈립니다.

파이썬에서는 한글 변수명도 동작할 수 있습니다.

이름 = "민수"
나이 = 25

다만 처음 공부할 때는 영어 변수명에 익숙해지는 편이 좋습니다.
예제, 문서, 오류 메시지, 협업 코드가 대부분 영어 기준으로 작성되기 때문입니다.


자료형이란 무엇일까?

자료형은 쉽게 말해 값의 종류입니다.

아래 값을 비교해보겠습니다.

age = 25
name = "민수"
is_student = True

겉보기에는 모두 변수입니다.
하지만 값 객체의 종류는 다릅니다.

이름 값의 자료형
age 25 정수
name "민수" 문자열
is_student True 불리언

자료형이 중요한 이유는 간단합니다.
값의 자료형에 따라 할 수 있는 일이 달라지기 때문입니다.

예를 들어 숫자는 계산할 수 있습니다.

price = 10000
discount = 2000

print(price - discount)

실행 결과는 다음과 같습니다.

8000

문자열은 글자를 이어붙일 수 있습니다.

first_name = "김"
last_name = "민수"

print(first_name + last_name)

실행 결과는 다음과 같습니다.

김민수

하지만 숫자와 문자열을 그대로 더하려고 하면 오류가 납니다.

age = 25

print("나이: " + age)

이 코드는 오류가 납니다.
"나이: "는 문자열이고, age가 가리키는 25는 정수 객체이기 때문입니다.

해결하려면 숫자를 문자열로 바꿔야 합니다.

age = 25

print("나이: " + str(age))

실행 결과는 다음과 같습니다.

나이: 25

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

자료형이 헷갈릴 때는 type() 함수를 쓰면 됩니다.

name = "Python"
age = 35
height = 175.5
is_easy = True

print(type(name))
print(type(age))
print(type(height))
print(type(is_easy))

실행 결과는 다음과 비슷합니다.

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

처음에는 <class 'str'> 같은 표현이 낯설 수 있습니다.
간단히 이렇게 이해하면 됩니다.

출력
<class 'str'> 문자열
<class 'int'> 정수
<class 'float'> 실수
<class 'bool'> 참/거짓

 

type()은 초보자가 오류를 찾을 때도 매우 유용합니다.

예를 들어 아래 코드를 보겠습니다.

price = "10000"
delivery_fee = 3000

print(price + delivery_fee)

이 코드는 오류가 납니다.
겉으로 보기에는 10000이 숫자처럼 보이지만, 따옴표 안에 있기 때문에 문자열입니다.

확인해보면 바로 알 수 있습니다.

price = "10000"

print(type(price))

실행 결과는 다음과 같습니다.

<class 'str'>

파이썬 기본 값·자료형 한눈에 보기

처음부터 모든 자료형을 외울 필요는 없습니다.
입문 단계에서는 아래 자료형과 값을 먼저 이해하면 됩니다.

값/자료형 예시
int 정수 10, -3, 0
float 실수 3.14, 0.5
str 문자열 "Python", "안녕"
bool 참/거짓 True, False
None 값의 부재를 나타내는 특별한 값 None
list 수정 가능한 순서형 자료 [1, 2, 3]
tuple 수정 불가능한 순서형 자료 (1, 2, 3)
dict 키와 값의 매핑 {"name": "민수"}
set 중복 없는 집합 {1, 2, 3}

 

공식 문서에서는 숫자형, 시퀀스형, 매핑형 같은 큰 분류로 자료형을 설명합니다. 초보자라면 처음부터 분류명을 외우기보다, 위 표의 예시를 직접 실행해보는 것이 더 좋습니다.


숫자 자료형: intfloat

파이썬에서 숫자는 크게 정수와 실수로 나눠서 이해하면 됩니다.

int: 정수

int는 소수점이 없는 숫자입니다.

age = 25
count = 3
temperature = -5

print(type(age))

실행 결과는 다음과 같습니다.

<class 'int'>

int는 더하기, 빼기, 곱하기, 나누기 같은 계산에 사용할 수 있습니다.

a = 10
b = 3

print(a + b)
print(a - b)
print(a * b)
print(a / b)

실행 결과는 다음과 같습니다.

13
7
30
3.3333333333333335

나누기 결과는 소수점이 포함될 수 있기 때문에 float로 나옵니다.

float: 실수

float는 소수점이 있는 숫자입니다.

height = 175.5
weight = 68.2

print(type(height))

실행 결과는 다음과 같습니다.

<class 'float'>

float를 쓸 때 초보자가 자주 놀라는 예시가 있습니다.

print(0.1 + 0.2)

실행 결과는 보통 다음처럼 나옵니다.

0.30000000000000004

왜 0.3이 아니냐고 느낄 수 있습니다.
이건 파이썬만의 문제가 아니라 컴퓨터가 소수를 이진수로 표현하는 방식 때문에 생기는 현상입니다.

입문 단계에서는 이렇게 기억하면 됩니다.

돈 계산처럼 정확한 소수 계산이 필요한 경우에는 float만 믿으면 안 된다.

처음에는 이 정도만 알아도 충분합니다.
나중에 돈 계산이나 정밀 계산을 다룰 때 Decimal 같은 도구를 따로 배우면 됩니다.


문자열 자료형: str

str은 문자열입니다.
문자열은 글자, 단어, 문장을 다룰 때 사용합니다.

name = "민수"
language = "Python"
message = "안녕하세요"

문자열은 작은따옴표와 큰따옴표를 모두 사용할 수 있습니다.

text1 = 'Python'
text2 = "Python"

둘 다 문자열입니다.
중요한 것은 따옴표 안에 들어가면 숫자처럼 보여도 문자열이 된다는 점입니다.

number1 = 100
number2 = "100"

print(type(number1))
print(type(number2))

실행 결과는 다음과 같습니다.

<class 'int'>
<class 'str'>

number1은 숫자입니다.
number2는 문자열입니다.

문자열은 더하기로 이어붙일 수 있습니다.

greeting = "안녕하세요"
name = "민수"

print(greeting + ", " + name + "님")

실행 결과는 다음과 같습니다.

안녕하세요, 민수님

다만 실무에서는 문자열을 이어붙일 때 f-string을 자주 씁니다.

name = "민수"
age = 25

print(f"{name}님의 나이는 {age}살입니다.")

실행 결과는 다음과 같습니다.

민수님의 나이는 25살입니다.

초보자라면 문자열 더하기보다 f-string 방식에 빨리 익숙해지는 것이 좋습니다.
숫자와 문자열을 섞어 출력할 때 훨씬 편합니다.


참과 거짓: bool

bool은 참과 거짓을 나타내는 자료형입니다.

is_student = True
is_adult = False

print(type(is_student))

실행 결과는 다음과 같습니다.

<class 'bool'>

주의할 점은 TrueFalse의 첫 글자가 대문자라는 것입니다.

is_done = True

아래처럼 쓰면 안 됩니다.

is_done = true

true는 파이썬에서 참값으로 인식되지 않습니다.

bool은 조건문에서 자주 사용합니다.

is_logged_in = True

if is_logged_in:
    print("환영합니다.")
else:
    print("로그인이 필요합니다.")

실행 결과는 다음과 같습니다.

환영합니다.

파이썬에서는 0, 빈 문자열, 빈 리스트 같은 값이 조건문에서 거짓처럼 취급될 수 있습니다.

name = ""

if name:
    print("이름이 있습니다.")
else:
    print("이름이 비어 있습니다.")

실행 결과는 다음과 같습니다.

이름이 비어 있습니다.

이 개념은 나중에 조건문을 배울 때 자주 나옵니다.
지금은 “비어 있으면 거짓처럼 볼 수 있다” 정도만 기억하면 됩니다.


값이 없음을 나타내는 None

None은 “값이 없다” 또는 “아직 값이 정해지지 않았다”는 뜻으로 자주 쓰이는 특별한 값입니다.

result = None

print(type(result))

실행 결과는 다음과 같습니다.

<class 'NoneType'>

여기서 중요한 점이 있습니다.

None은 값입니다.
NoneType은 None의 타입입니다.

즉, None은 값의 부재를 나타내는 특별한 객체이고, type(None)을 실행하면 <class 'NoneType'>이 출력됩니다.

None은 0이나 빈 문자열과 다릅니다.

의미
0 숫자 0
"" 비어 있는 문자열
None 값이 아직 없음을 나타내는 특별한 값

 

예를 들어 아직 사용자의 이메일을 입력받지 않았다면 이렇게 둘 수 있습니다.

email = None

나중에 이메일이 생기면 다시 값을 넣을 수 있습니다.

email = "user@example.com"

초보자는 None을 “아직 정해지지 않은 값” 정도로 이해하면 됩니다.


여러 값을 담는 list

list는 여러 값을 순서대로 담을 때 사용합니다.

fruits = ["apple", "banana", "orange"]

print(fruits)

실행 결과는 다음과 같습니다.

['apple', 'banana', 'orange']

리스트는 순서가 있기 때문에 위치 번호로 값을 꺼낼 수 있습니다.
파이썬의 위치 번호는 0부터 시작합니다.

fruits = ["apple", "banana", "orange"]

print(fruits[0])
print(fruits[1])

실행 결과는 다음과 같습니다.

apple
banana

리스트는 값을 추가하거나 바꿀 수 있습니다.

fruits = ["apple", "banana"]

fruits.append("orange")
fruits[0] = "grape"

print(fruits)

실행 결과는 다음과 같습니다.

['grape', 'banana', 'orange']

이처럼 값을 바꿀 수 있는 성질을 mutable, 즉 수정 가능하다고 표현합니다.


수정 불가능한 순서형 자료: tuple

tuple은 리스트처럼 여러 값을 순서대로 담을 수 있지만, 한 번 만든 뒤에는 안의 항목을 바꿀 수 없는 자료형입니다.

point = (10, 20)

print(point[0])
print(point[1])

실행 결과는 다음과 같습니다.

10
20

튜플은 보통 바뀌면 안 되는 묶음을 표현할 때 사용합니다.

예를 들어 좌표처럼 두 값이 함께 움직이는 경우입니다.

location = (37.5665, 126.9780)

리스트와 튜플 차이는 이렇게 정리할 수 있습니다.

자료형 특징
list 순서가 있고, 값을 추가하거나 바꿀 수 있음
tuple 순서가 있지만, 한 번 만든 뒤 항목을 바꿀 수 없음

 

초보 단계에서는 list를 더 자주 쓰게 됩니다.
튜플은 “수정 불가능한 순서형 자료”라고 기억하면 됩니다.


키와 값으로 저장하는 dict

dict는 키와 값을 묶어서 저장하는 자료형입니다.
딕셔너리라고 읽습니다.

user = {
    "name": "민수",
    "age": 25,
    "is_student": True
}

이 구조는 실제 데이터와 비슷합니다.

이름: 민수
나이: 25
학생 여부: True

딕셔너리에서 값을 꺼낼 때는 키를 사용합니다.

user = {
    "name": "민수",
    "age": 25
}

print(user["name"])
print(user["age"])

실행 결과는 다음과 같습니다.

민수
25

딕셔너리는 API 응답, 설정값, 사용자 정보, 상품 정보 같은 데이터를 다룰 때 자주 사용합니다.

예를 들어 블로그 글 정보를 표현하면 이렇게 쓸 수 있습니다.

post = {
    "title": "파이썬 변수와 자료형",
    "category": "Python",
    "views": 120
}

초보자가 dict를 어렵게 느끼는 이유는 대괄호와 중괄호가 섞여 나오기 때문입니다.

list: []
dict: {}

이 차이만 먼저 기억해도 충분합니다.


중복을 제거하는 set

set은 중복 없는 값을 모을 때 사용합니다.

numbers = {1, 2, 2, 3, 3, 3}

print(numbers)

실행 결과는 다음과 비슷합니다.

{1, 2, 3}

중복된 값이 하나로 정리됩니다.

예를 들어 방문자가 검색한 키워드 목록에서 중복을 제거하고 싶다면 이런 식으로 생각할 수 있습니다.

keywords = ["Python", "ChatGPT", "Python", "Docker"]

unique_keywords = set(keywords)

print(unique_keywords)

결과는 순서가 다르게 보일 수 있습니다.

{'Docker', 'Python', 'ChatGPT'}

set은 중복 제거에는 편하지만, 순서를 중요하게 다루는 자료형은 아닙니다.
처음에는 “중복 없는 집합” 정도로 이해하면 됩니다.


list와 dict는 특히 중요하다

입문 단계에서 가장 중요한 자료형을 고르라면 listdict입니다.

Python으로 자동화, 데이터 정리, API 사용을 하다 보면 이 둘을 자주 만나게 됩니다.

예를 들어 여러 명의 사용자 정보를 저장한다고 해보겠습니다.

users = [
    {"name": "민수", "age": 25},
    {"name": "지은", "age": 30},
    {"name": "현우", "age": 28}
]

겉보기에는 복잡해 보이지만 구조를 나눠보면 어렵지 않습니다.

users는 리스트다.
리스트 안에는 딕셔너리가 들어 있다.
각 딕셔너리는 한 사람의 정보를 나타낸다.

값을 하나 꺼내보겠습니다.

print(users[0]["name"])

실행 결과는 다음과 같습니다.

민수

해석 순서는 이렇습니다.

users[0]          → 첫 번째 사람 정보
users[0]["name"]  → 첫 번째 사람의 name 값

이 구조는 나중에 웹 데이터, JSON, API 응답을 다룰 때 자주 나옵니다.
따라서 Python을 계속 공부할 생각이라면 listdict는 꼭 익숙해져야 합니다.


수정 가능한 자료형과 수정 불가능한 자료형

파이썬 자료형을 배울 때 중요한 기준이 하나 더 있습니다.

객체의 내용을 바꿀 수 있는가?

이 기준으로 자료형을 나누면 다음과 같습니다.

구분 자료형 예시 설명
수정 불가능 int, float, str, tuple 객체 자체를 바꾸기보다 새 객체에 이름을 다시 연결
수정 가능 list, dict, set 객체 안에 들어 있는 항목을 바꿀 수 있음

 

예를 들어 문자열은 수정 불가능한 자료형입니다.

text = "Python"
text = "Python Study"

이 코드는 문자열 자체를 고친다기보다, text라는 이름을 새 문자열 객체에 다시 연결하는 방식으로 이해하는 편이 좋습니다.

반면 리스트는 내부 값을 바꿀 수 있습니다.

numbers = [1, 2, 3]
numbers[0] = 100

print(numbers)

실행 결과는 다음과 같습니다.

[100, 2, 3]

이 차이는 나중에 매우 중요해집니다.


초보자가 자주 틀리는 부분: 리스트 복사

파이썬을 처음 배울 때 많이 헷갈리는 예제가 있습니다.

a = [1, 2, 3]
b = a

b.append(4)

print(a)
print(b)

초보자는 이렇게 예상할 수 있습니다.

a는 [1, 2, 3]
b는 [1, 2, 3, 4]

하지만 실제 결과는 다음과 같습니다.

[1, 2, 3, 4]
[1, 2, 3, 4]

왜 그럴까요?

b = a는 리스트를 새로 복사한 것이 아닙니다.
b라는 이름도 a가 가리키던 같은 리스트 객체를 가리키게 만든 것입니다.

공식 튜토리얼에서도 단순 대입은 데이터를 복사하지 않는다고 설명합니다.
리스트를 복사하려면 아래처럼 할 수 있습니다.

a = [1, 2, 3]
b = a.copy()

b.append(4)

print(a)
print(b)

실행 결과는 다음과 같습니다.

[1, 2, 3]
[1, 2, 3, 4]

초보자는 이 부분을 꼭 기억해야 합니다.

리스트를 복사하고 싶다면 b = a만 쓰면 안 된다.

자료형 변환: int(), str(), float()

코딩을 하다 보면 자료형을 바꿔야 할 때가 많습니다.

예를 들어 사용자에게 입력받은 값은 보통 문자열로 들어옵니다.

age = "25"

이 값을 숫자로 계산하려면 int()를 사용할 수 있습니다.

age = "25"
next_year_age = int(age) + 1

print(next_year_age)

실행 결과는 다음과 같습니다.

26

자주 쓰는 변환은 다음과 같습니다.

함수 예시
int() 정수로 변환 int("10")
float() 실수로 변환 float("3.14")
str() 문자열로 변환 str(100)
list() 리스트로 변환 list("abc")

 

예를 들어 문자열을 리스트로 바꾸면 글자 단위로 나뉩니다.

letters = list("Python")

print(letters)

실행 결과는 다음과 같습니다.

['P', 'y', 't', 'h', 'o', 'n']

주의할 점도 있습니다.

number = int("abc")

이 코드는 오류가 납니다.
"abc"는 숫자로 바꿀 수 없는 문자열이기 때문입니다.

초보자는 자료형 변환을 할 때 이렇게 생각하면 됩니다.

겉보기만 숫자인가?
정말 숫자로 바꿀 수 있는 형태인가?

===를 구분해야 한다

변수를 배울 때 ===도 자주 헷갈립니다.

기호 의미 예시
= 이름을 값에 연결 age = 25
== 두 값이 같은지 비교 age == 25

 

예를 들어 아래 코드는 이름을 값에 연결하는 코드입니다.

age = 25

아래 코드는 값이 같은지 확인하는 코드입니다.

age = 25

print(age == 25)

실행 결과는 다음과 같습니다.

True

조건문에서는 ==를 자주 씁니다.

password = "1234"

if password == "1234":
    print("로그인 성공")
else:
    print("로그인 실패")

실행 결과는 다음과 같습니다.

로그인 성공

초보자는 이렇게 기억하면 됩니다.

=  : 이름을 값에 연결한다
== : 같은지 물어본다

실제 예제로 변수와 자료형 이해하기

이제 간단한 예제를 하나 만들어보겠습니다.

product_name = "무선 마우스"
price = 25000
delivery_fee = 3000
is_member = True

total_price = price + delivery_fee

print(f"상품명: {product_name}")
print(f"상품 가격: {price}원")
print(f"배송비: {delivery_fee}원")
print(f"총 결제 금액: {total_price}원")
print(f"회원 여부: {is_member}")

실행 결과는 다음과 같습니다.

상품명: 무선 마우스
상품 가격: 25000원
배송비: 3000원
총 결제 금액: 28000원
회원 여부: True

이 예제에는 여러 자료형이 들어 있습니다.

이름 값의 자료형 설명
product_name str 상품명
price int 상품 가격
delivery_fee int 배송비
is_member bool 회원 여부
total_price int 계산 결과

 

이렇게 실제 상황과 연결하면 변수와 자료형이 훨씬 쉽게 이해됩니다.


ChatGPT로 변수와 자료형을 공부할 때 좋은 질문

ChatGPT를 활용한다면 단순히 “자료형 알려줘”라고 묻기보다, 조건을 구체적으로 주는 편이 좋습니다.

아래처럼 질문해보세요.

나는 Python을 처음 배우는 비전공자야.
변수와 자료형을 쇼핑몰 예제로 설명해줘.
int, str, bool, list, dict가 각각 하나씩 들어간 예제 코드를 만들어줘.
각 줄마다 주석을 달아줘.

오류가 났을 때는 이렇게 질문하면 됩니다.

아래 Python 코드에서 TypeError가 났어.
초보자 기준으로 원인을 설명하고, 수정된 코드를 보여줘.

[코드]
...
[오류 메시지]
...

복습할 때는 문제를 만들어달라고 요청하는 것도 좋습니다.

Python 변수와 자료형을 연습할 수 있는 초보자용 문제 5개를 내줘.
정답은 바로 보여주지 말고, 내가 답을 쓰면 채점해줘.

이런 방식으로 공부하면 답을 그냥 읽는 것보다 기억에 오래 남습니다.


연습문제

아래 문제는 직접 풀어보는 것을 추천합니다.
정답을 보기 전에 코드를 먼저 실행해보세요.

문제 1. 자료형 확인하기

아래 값들의 자료형을 type()으로 출력해보세요.

title = "Python 기초"
views = 150
rating = 4.8
is_published = True
tags = ["Python", "입문", "자료형"]
empty_value = None

문제 2. 문자열과 숫자 함께 출력하기

아래 이름과 값을 사용해 다음 문장을 출력해보세요.

name = "민수"
age = 25

출력 결과:

민수님의 나이는 25살입니다.

힌트: f-string을 사용해보세요.

문제 3. 리스트에 값 추가하기

아래 리스트에 "Docker"를 추가한 뒤 출력해보세요.

skills = ["Python", "Git"]

문제 4. 딕셔너리에서 값 꺼내기

아래 딕셔너리에서 titleviews를 출력해보세요.

post = {
    "title": "파이썬 변수와 자료형",
    "views": 100
}

문제 5. 리스트 복사 확인하기

아래 코드를 실행하면 어떤 결과가 나올지 먼저 예상해보세요.

a = [1, 2, 3]
b = a
b.append(4)

print(a)
print(b)

그다음 b = a.copy()로 바꿔서 다시 실행해보세요.


정리: 변수와 자료형은 Python의 출발점이다

파이썬 변수와 자료형은 단순한 기초 문법처럼 보이지만, 이후 모든 코드의 출발점입니다.

이번 글의 핵심은 세 가지입니다.

1. 변수는 값에 붙이는 이름표에 가깝다.
2. 자료형은 값 객체가 어떤 종류인지 알려준다.
3. 자료형에 따라 할 수 있는 일이 달라진다.

처음에는 int, float, str, bool, None, list, dict 정도만 확실히 익혀도 충분합니다.
그다음 조건문, 반복문, 함수로 넘어가면 Python 코드가 훨씬 자연스럽게 읽히기 시작합니다.

다음 단계로는 for 반복문과 while 반복문을 배우는 것이 좋습니다.
리스트와 딕셔너리를 반복문과 함께 쓰면 실제 자동화 예제를 만들 수 있기 때문입니다.


FAQ

Q1. 파이썬 변수는 꼭 자료형을 미리 정해야 하나요?

아니요. 파이썬은 변수를 만들 때 int age = 25처럼 자료형을 미리 쓰지 않습니다. age = 25라고 쓰면 age라는 이름이 정수 객체 25에 연결됩니다. 이후 age = "25"처럼 다시 대입하면 같은 이름이 문자열 객체 "25"에 새로 연결될 수 있습니다.

Q2. 숫자처럼 생긴 "100"은 숫자인가요?

아닙니다. 따옴표 안에 있으면 문자열입니다. "100"str이고, 100int입니다. 계산하려면 int("100")처럼 변환해야 합니다.

Q3. listtuple의 가장 큰 차이는 무엇인가요?

list는 값을 추가하거나 바꿀 수 있고, tuple은 한 번 만든 뒤 항목을 바꿀 수 없습니다. 초보자는 값이 바뀔 가능성이 있으면 list, 고정된 순서형 묶음이면 tuple로 생각하면 됩니다.

Q4. dict는 언제 쓰나요?

이름, 나이, 조회수처럼 항목 이름과 값이 함께 있는 데이터를 표현할 때 씁니다. 사용자 정보, 상품 정보, 블로그 글 정보, API 응답에서 자주 사용합니다.

Q5. type()은 실무에서도 쓰나요?

디버깅할 때 사용할 수 있습니다. 다만 실제 코드에서 자료형을 검사할 때는 상황에 따라 isinstance()를 쓰는 경우도 많습니다. 입문 단계에서는 type()으로 값의 자료형을 확인하는 연습부터 하면 됩니다.

Q6. 변수 이름은 한글로 써도 되나요?

파이썬에서는 한글 변수명도 동작할 수 있습니다. 다만 예제, 문서, 협업 환경은 대부분 영어 기준이므로 처음에는 영어 변수명에 익숙해지는 편이 좋습니다.

Q7. NoneNoneType은 같은 말인가요?

같은 말은 아닙니다. None은 값의 부재를 나타내는 특별한 값이고, NoneType은 그 None 값의 타입입니다. type(None)을 실행하면 <class 'NoneType'>이 출력됩니다.