Các kiểu dữ liệu trong Python: int, float, string, bool đầy đủ nhất
Khi học lập trình Python, một trong những điều đầu tiên bạn cần hiểu là kiểu dữ liệu (data type). Kiểu dữ liệu xác định loại thông tin mà biến có thể lưu trữ và những phép toán nào có thể thực hiện trên đó.
Bài viết này sẽ giới thiệu tất cả các kiểu dữ liệu cơ bản trong Python: int, float, string, bool và các kiểu tập hợp như list, dict, set.
Kiểu dữ liệu trong Python là gì?
Mỗi giá trị trong Python đều có một "loại" – gọi là kiểu dữ liệu. Python có thể tự động nhận biết kiểu dữ liệu mà không cần bạn khai báo tường minh (dynamic typing).
Để kiểm tra kiểu dữ liệu của một biến, dùng hàm type():
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type(True)) # <class 'bool'>
Kiểu số nguyên: int
int (integer) dùng để lưu các số nguyên – không có phần thập phân.
age = 22
year = 2026
score = -5
big_number = 1_000_000 # Dấu _ giúp đọc dễ hơn
print(age) # 22
print(type(age)) # <class 'int'>
# Phép toán với int
print(10 + 3) # 13
print(10 - 3) # 7
print(10 * 3) # 30
print(10 // 3) # 3 (chia lấy phần nguyên)
print(10 % 3) # 1 (lấy phần dư)
print(2 ** 10) # 1024 (lũy thừa)
Kiểu số thực: float
float dùng để lưu các số có phần thập phân.
price = 199.99
pi = 3.14159
temperature = -2.5
print(type(price)) # <class 'float'>
# Phép toán với float
print(1.5 + 2.5) # 4.0
print(10.0 / 3) # 3.3333...
print(round(3.14159, 2)) # 3.14 (làm tròn)
Lưu ý: Phép chia / trong Python luôn trả về float dù chia hết hay không:
print(10 / 2) # 5.0 (float, không phải 5)
print(10 // 2) # 5 (int, chia lấy phần nguyên)
Kiểu chuỗi: str (string)
str dùng để lưu văn bản – bất kỳ chuỗi ký tự nào được đặt trong dấu nháy đơn '...' hoặc nháy kép "...".
name = "Nguyễn An"
greeting = 'Xin chào!'
address = "123 Nguyễn Huệ, TP.HCM"
# F-string (ES6 template literal của Python)
age = 22
intro = f"Tôi là {name}, {age} tuổi"
print(intro) # "Tôi là Nguyễn An, 22 tuổi"
# Các thao tác cơ bản
print(len(name)) # 9 (số ký tự)
print(name.upper()) # NGUYỄN AN
print(name.lower()) # nguyễn an
print(name[0]) # N (ký tự đầu tiên)
print(name[-1]) # n (ký tự cuối cùng)
print("An" in name) # True (kiểm tra chuỗi con)
print(name.replace("An", "Bình")) # Nguyễn Bình
Kiểu logic: bool
bool chỉ có 2 giá trị: True (đúng) hoặc False (sai). Thường dùng trong câu lệnh điều kiện.
is_student = True
has_job = False
# Các phép so sánh trả về bool
print(10 > 5) # True
print(10 == 10) # True
print(10 != 5) # True
print(10 < 5) # False
# bool trong điều kiện if
age = 18
if age >= 18:
print("Đủ tuổi bầu cử")
else:
print("Chưa đủ tuổi")
Kiểu tập hợp: list, tuple, dict, set
Python còn có các kiểu dữ liệu phức tạp hơn để lưu nhiều giá trị:
list – Danh sách
fruits = ["táo", "chuối", "xoài"]
fruits.append("cam") # thêm phần tử
print(fruits[0]) # "táo" (truy cập theo index)
print(len(fruits)) # 4
tuple – Bộ giá trị cố định
point = (10.8, 106.6) # tọa độ GPS
# point[0] = 11.0 # Lỗi! tuple không thể thay đổi
dict – Từ điển key-value
person = {
"name": "Nguyễn An",
"age": 22,
"city": "HCM"
}
print(person["name"]) # "Nguyễn An"
set – Tập hợp không trùng lặp
numbers = {1, 2, 3, 3, 2, 1}
print(numbers) # {1, 2, 3} – tự động loại bỏ trùng
Chuyển đổi kiểu dữ liệu (Type Casting)
Python cho phép bạn chuyển đổi giữa các kiểu dữ liệu:
# str → int
age_text = "22"
age = int(age_text) # 22
# int → float
price = float(100) # 100.0
# int → str
year_str = str(2026) # "2026"
# Ví dụ thực tế: nhận input từ người dùng
user_age = input("Nhập tuổi: ") # luôn là str
age = int(user_age) # chuyển sang int để tính toán
print(f"Sau 10 năm, bạn {age + 10} tuổi")
Bảng tổng hợp kiểu dữ liệu Python
| Kiểu | Ví dụ | Mô tả | Có thể thay đổi? |
|---|---|---|---|
| int | 42, -10, 0 | Số nguyên | N/A |
| float | 3.14, -0.5 | Số thực | N/A |
| str | "hello", 'world' | Chuỗi ký tự | ❌ Immutable |
| bool | True, False | Giá trị logic | N/A |
| list | [1, 2, 3] | Danh sách có thứ tự | ✅ Mutable |
| tuple | (1, 2, 3) | Danh sách cố định | ❌ Immutable |
| dict | {"a": 1} | Từ điển key-value | ✅ Mutable |
| set | {1, 2, 3} | Tập hợp không trùng | ✅ Mutable |
| None | None | Không có giá trị | N/A |