파이썬(Python)은 배우기 쉽고 강력한 프로그래밍 언어로, 초보자부터 전문가까지 모두가 사랑하는 언어입니다. 이번 글에서는 파이썬의 기본 중 하나인 변수, 숫자, 연산에 대해 알아보겠습니다. 이 세 가지는 모든 파이썬 프로그램의 기초가 되며, 다양한 응용 프로그램에서 필수적으로 사용됩니다.
변수(Variable)
변수는 데이터를 저장하는 데 사용됩니다. 변수 이름은 데이터를 참조하는 데 사용되며, 값을 변경할 수 있습니다. 파이썬에서는 변수를 선언할 때 자료형을 명시할 필요가 없으며, 값이 할당되는 순간 자료형이 자동으로 결정됩니다.
변수 선언과 사용
# 변수 선언 및 초기화
x = 10
name = "파이썬"
is_active = True
# 변수 출력
print(x) # 출력: 10
print(name) # 출력: 파이썬
print(is_active) # 출력: True

변수 이름 규칙
- 영문자, 숫자, 밑줄(_)로 구성 가능 (숫자로 시작 불가)

- 대소문자를 구분함 (e.g., name과 Name은 다른 변수)

- 예약어(키워드)는 사용할 수 없음 (e.g., def, class 등)

변수의 이름을 작성 할 댸부터 녹색으로 변해서 표시 된다.
아래는 파이썬에서 사용되는 예약어들을 표로 정리한 내용입니다. 예약어는 변수나 함수 이름으로 사용할 수 없으며, 파이썬의 문법에서 고유한 의미를 지닙니다.
예 약 어 | 설 명 | 예 약 어 | 설 명 |
False | 논리값 거짓 | None | 값이 없음을 나타냄 |
True | 논리값 참 | and | 논리 AND 연산자 |
as | 별칭 지정 | assert | 조건 검증에 사용 |
async | 비동기 함수 정의 | await | 비동기 호출 대기 |
break | 반복문 종료 | class | 클래스 정의 |
continue | 반복문 건너뛰기 | def | 함수 정의 |
del | 객체 삭제 | elif | 조건문 (else if) |
else | 조건문 끝 처리 | except | 예외 처리 |
finally | 예외 처리 마지막 단계 | for | 반복문 |
from | 모듈에서 특정 부분 가져오기 | global | 전역 변수 선언 |
if | 조건문 | import | 모듈 가져오기 |
in | 포함 여부 확인 | is | 동일 객체 비교 |
lambda | 익명 함수 정의 | nonlocal | 지역 외부 변수 접근 |
not | 논리 NOT 연산자 | or | 논리 OR 연산자 |
pass | 실행할 코드 없음 | raise | 예외 발생 |
return | 함수 반환값 | try | 예외 처리 시작 |
while | 조건 반복문 | with | 컨텍스트 관리 |
yield | 제너레이터 반환 |
유용한 팁
변수 이름은 데이터를 나타내는 데 의미 있는 이름을 사용하는 것이 좋습니다. 예를 들어, 사용자의 나이를 저장하는 변수는 age로 명명하는 것이 적합합니다.

데이터 타입(Data Type) - 상세 설명
변수는 데이터를 저장하는 역할을 하지만, 그 데이터에는 여러 가지 형태(타입)가 있습니다.
파이썬은 다양한 데이터 타입(Data Type)을 제공하며, 각 타입마다 고유한 특징과 용도가 있습니다.
기본 데이터 타입
파이썬에서 가장 많이 사용하는 기본적인 데이터 타입은 다음과 같습니다.
데이터 타입 | 설명 | 예제 |
int | 정수형 (integer) | 10, -3, 1000 |
float | 실수형 (floating point) | 3.14, -0.5, 1.23e3 |
str | 문자열 (string) | "Hello", 'Python' |
bool | 불리언 (Boolean) | True, False |
(1) 정수형 (Integer, int)
정수형은 소수점이 없는 숫자로, 양수, 음수, 0이 포함됩니다.
x = 100
y = -25
z = 0
print(type(x)) # <class 'int'>
print(type(y)) # <class 'int'>
print(type(z)) # <class 'int'>
(2) 실수형 (Floating Point, float)
실수형은 소수점을 포함한 숫자를 의미하며, e 표기법을 사용해 지수 표현도 가능합니다.
pi = 3.14
num = -0.5
exp = 1.23e3 # 1.23 × 10^3 = 1230.0
print(type(pi)) # <class 'float'>
print(type(num)) # <class 'float'>
print(type(exp)) # <class 'float'>
(3) 문자열 (String, str)
문자열은 작은 따옴표(') 또는 큰 따옴표(")로 감싸서 표현합니다.
text1 = "Hello, Python!"
text2 = '파이썬 프로그래밍'
print(type(text1)) # <class 'str'>
print(type(text2)) # <class 'str'>
문자열은 여러 가지 조작이 가능합니다.
greeting = "Hello"
name = "Alice"
message = greeting + ", " + name + "!"
print(message) # Hello, Alice!
print(len(message)) # 문자열 길이 확인
print(message.upper()) # 대문자로 변환
(4) 불리언 (Boolean, bool)
불리언은 True 또는 False 값만 가질 수 있는 데이터 타입입니다.
is_active = True
is_deleted = False
print(type(is_active)) # <class 'bool'>
print(type(is_deleted)) # <class 'bool'>
불리언은 논리 연산에서 많이 사용됩니다.
a = 10
b = 20
print(a > b) # False
print(a < b) # True
컬렉션 데이터 타입
파이썬에서는 여러 개의 데이터를 저장하고 관리할 수 있도록 컬렉션 타입(Collection Type)을 제공합니다.
데이터 타입 | 설명 | 예제 |
list | 변경 가능한 배열 | [1, 2, 3, "Python"] |
tuple | 변경 불가능한 배열 | (1, 2, 3, "Python") |
dict | 키-값 쌍 저장 | {"name": "Alice", "age": 25} |
set | 중복 없는 집합 | {1, 2, 3, 4} |
(1) 리스트 (List, list)
리스트는 여러 개의 값을 저장하는 배열 형태의 자료형입니다. 리스트는 수정 가능(mutable)합니다.
fruits = ["사과", "바나나", "포도"]
numbers = [1, 2, 3, 4, 5]
mixed = [10, "Python", True]
print(fruits[0]) # 첫 번째 요소 출력 (사과)
fruits.append("오렌지") # 리스트에 요소 추가
print(fruits) # ['사과', '바나나', '포도', '오렌지']
(2) 튜플 (Tuple, tuple)
튜플은 리스트와 비슷하지만, 값을 변경할 수 없는(immutable) 자료형입니다.
coordinates = (10, 20)
print(coordinates[0]) # 10
튜플은 데이터 변경이 불가능하여, 데이터 보호가 필요한 경우 사용됩니다.
# coordinates[0] = 30 # 오류 발생! (튜플은 수정 불가능)
(3) 딕셔너리 (Dictionary, dict)
딕셔너리는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료형입니다.
person = {"name": "Alice", "age": 25, "city": "Seoul"}
print(person["name"]) # Alice
person["age"] = 26 # 값 변경 가능
print(person) # {'name': 'Alice', 'age': 26, 'city': 'Seoul'}
(4) 집합 (Set, set)
집합은 중복을 허용하지 않는 자료형이며, 순서가 없습니다.
numbers = {1, 2, 3, 4, 4, 5}
print(numbers) # {1, 2, 3, 4, 5} (중복 제거됨)
변수의 메모리 관리 & 데이터 타입 변환
변수의 메모리 관리
파이썬에서 변수를 선언하면 값 자체를 저장하는 것이 아니라, 값이 저장된 메모리 주소를 참조(reference)하는 방식으로 동작합니다.
즉, 변수가 특정 값을 가리키고 있으며, 변수 간의 할당은 값을 복사하는 것이 아니라, 동일한 메모리 주소를 참조하는 형태가 됩니다.
(1) 변수의 메모리 참조 개념
a = [1, 2, 3]
b = a # a와 b는 같은 리스트 객체를 참조
a.append(4)
print(a) # [1, 2, 3, 4]
print(b) # [1, 2, 3, 4] → b도 영향을 받음
결과 분석:
- a와 b는 같은 리스트를 참조하므로, a를 수정하면 b도 영향을 받습니다.
(2) 메모리 참조 방식 확인 (id() 함수 활용)
변수가 가리키고 있는 메모리 주소를 확인할 때는 id() 함수를 사용합니다.
x = 10
y = x
print(id(x)) # x의 메모리 주소 출력
print(id(y)) # y도 동일한 주소를 참조
📌 결과: x와 y는 같은 정수 값을 참조하고 있으므로, id(x)와 id(y) 값이 동일하게 나옵니다.
가변 객체(Mutable) vs 불변 객체(Immutable)
타입 | 설명 | 예제 |
불변 객체 (Immutable) | 변경할 수 없는 객체 | int, float, str, tuple, bool |
가변 객체 (Mutable) | 값을 변경할 수 있는 객체 | list, dict, set |
(1) 불변 객체 예제
a = 10
b = a
a = 20 # a의 값을 변경
print(a) # 20
print(b) # 10 (변경되지 않음)
- int, float, str과 같은 불변 객체(Immutable Object)는 값이 변경되면 새로운 메모리 주소가 할당됩니다.
(2) 가변 객체 예제
list1 = [1, 2, 3]
list2 = list1 # 같은 리스트를 참조
list1.append(4)
print(list1) # [1, 2, 3, 4]
print(list2) # [1, 2, 3, 4] (list2도 변경됨)
- 리스트(list), 딕셔너리(dict), 집합(set) 등은 가변 객체(Mutable Object)이므로, 값이 변경되어도 메모리 주소가 유지됩니다.
데이터 타입 변환 (Type Casting)
파이썬에서는 데이터 타입 변환을 통해 다양한 자료형을 서로 변환할 수 있습니다.
(1) 정수형 변환 (int())
num_str = "100"
num_int = int(num_str) # 문자열 → 정수 변환
print(num_int, type(num_int)) # 100 <class 'int'>
(2) 실수형 변환 (float())
num_str = "3.14"
num_float = float(num_str) # 문자열 → 실수 변환
print(num_float, type(num_float)) # 3.14 <class 'float'>
(3) 문자열 변환 (str())
num = 42
num_str = str(num) # 정수 → 문자열 변환
print(num_str, type(num_str)) # "42" <class 'str'>
(4) 리스트 변환 (list())
text = "Python"
text_list = list(text) # 문자열 → 리스트 변환
print(text_list) # ['P', 'y', 't', 'h', 'o', 'n']
(5) 튜플 변환 (tuple())
nums = [1, 2, 3]
nums_tuple = tuple(nums) # 리스트 → 튜플 변환
print(nums_tuple) # (1, 2, 3)
(6) 집합 변환 (set())
nums_list = [1, 2, 2, 3, 4, 4, 5]
nums_set = set(nums_list) # 리스트 → 집합 변환 (중복 제거)
print(nums_set) # {1, 2, 3, 4, 5}
(7) 불리언 변환 (bool())
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False (빈 문자열)
print(bool("Python")) # True (문자열 포함)
📌 정리 및 요약
✅ 파이썬 변수는 값이 아니라 메모리 주소를 참조하는 방식으로 동작
✅ 불변 객체(int, float, str, tuple) vs 가변 객체(list, dict, set)
✅ 데이터 타입 변환(int(), float(), str(), list(), tuple(), set(), bool())을 통해 다양한 변환 가능
'🐍 Python > 🐍 기초 문법' 카테고리의 다른 글
[기초문법 5강] 반복문 (for, while) 완벽 가이드 (1) | 2025.01.19 |
---|---|
[기초문법 4강] 조건문 (if, elif, else) 완벽 가이드 (0) | 2025.01.19 |
[기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지 (0) | 2025.01.18 |
[기초문법 1강] 파이썬 출력, 입력, 형변환 제대로 배우기 (0) | 2025.01.16 |
[특별편] 파이썬 필수 라이브러리 종류와 설치 방법 완벽 가이드 (0) | 2025.01.13 |