Các kiểu dữ liệu trong Python: int, float, string, bool
Python có 8 kiểu dữ liệu cơ bản — int, float, str, bool, list, tuple, dict, set — và mỗi kiểu phù hợp với một loại dữ liệu khác nhau. Hiểu rõ chúng là bước không thể bỏ qua khi mới học Python.
Điểm tiện lợi: không như Java hay C, Python 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). Dùng hàm type() để xem kiểu của bất kỳ giá trị nào:
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
str lưu văn bản — bất kỳ chuỗi ký tự nào đặ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 — cách ghép chuỗi phổ biến nhất hiện nay
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 hay dùng
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 hoặc False. Thường xuất hiện trong câu lệnh điều kiện và các phép so sánh.
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
# Dùng 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
Khi cần lưu nhiều giá trị cùng lúc, Python có 4 kiểu tập hợp chính:
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
Python cho phép chuyển đổi giữa các kiểu bằng cách gọi tên kiểu như một hàm:
# 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ế: input() luôn trả về str
user_age = input("Nhập tuổi: ") # luôn là str
age = int(user_age) # chuyển sang int mới tính toán được
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 |