Các kiến thức cần nắm:
- int, float, bool (5 sao)
- str (5 sao)
- list (5 sao)
- tuple (2 sao)
- set (1 sao)
- dict (5 sao)
- bytes (4 sao)
- toán tử (3 sao)
- thao tác với file (4 sao)
int: Số nguyên, có thể dùng để cộng, trừ, nhân, chia và so sánh.
so_nguyen = 10
float: Số thực, số thập phân
so_thuc = 10.5
print("so_thuc =", so_thuc)
ket_qua_chia = 10 / 3
print("10 ÷ 3 =", ket_qua_chia)
Kết quả:
so_thuc = 10.5
10 ÷ 3 = 3.3333333333333335
Số nguyên: Trong một khoảng cụ thể, số nguyên có thể được biểu diễn rõ ràng. Ví dụ, trong khoảng từ 1 đến 10.000, chỉ có 10.000 số nguyên và chúng có thể được liệt kê đầy đủ.
Số thực: Phạm vi dữ liệu là vô hạn. Ví dụ, trong khoảng từ 1 đến 2, có vô số số thực và không thể liệt kê hết tất cả.
Máy tính hoạt động dựa trên hệ nhị phân, chỉ sử dụng 0 và 1. Việc biểu diễn số thực trong máy tính rất khó khăn và thường có sai số.
Tại sao 10/3 cho kết quả là 3.3333333333333335 thay vì 3.3333333333333333 hoặc 3.3333333333333334?
Trong máy tính, số thực được biểu diễn bằng nhị phân, không phải thập phân. Mặc dù 10/3 trong thập phân là 3.3333333333333333 (với phần thập phân lặp lại), nhưng trong nhị phân, nó không thể được biểu diễn chính xác bằng một số lượng hữu hạn bit. Do đó, giá trị gần đúng mà máy tính lưu trữ là 3.3333333333333335, đây là một biểu diễn số thực gần với giá trị ban đầu.
Trong thực tế, do giới hạn độ chính xác của số thực, khi thực hiện các phép tính (như cộng, trừ, nhân, chia), có thể xuất hiện các lỗi nhỏ do làm tròn. Điều này xảy ra vì máy tính chỉ sử dụng một số lượng hữu hạn bit để biểu diễn số thực, nên các phép tính sẽ được làm tròn. Các lỗi nhỏ này có thể dẫn đến kết quả hơi khác so với mong đợi.
Nếu bạn thực hiện 10/3 trong Python, kết quả có thể hơi khác nhau tùy theo môi trường và máy tính, nhưng đều gần với 3.3333333333333335. Điều này là do Python sử dụng chuẩn IEEE 754 để biểu diễn số thực, có thể dẫn đến các lỗi nhỏ do làm tròn.
Trong tất cả các ngôn ngữ lập trình, vấn đề này cũng xuất hiện, như Java, C, v.v. Nếu kết quả tính toán cho ra 2.0000000000000001, ta coi đó là 2.
bool: Kiểu dữ liệu boolean, dùng để đánh giá điều kiện.
Giá trị: True, False
Ví dụ: # Chuyển đổi giữa các kiểu dữ liệu cơ bản
chuoi = "10" # Chuỗi ký tự
print(type(chuoi)) # In kiểu dữ liệu của chuoi
so_nguyen = int(chuoi) # Chuyển chuỗi thành số nguyên
print(type(so_nguyen)) # In kiểu dữ liệu của so_nguyen
Kết quả:
<class 'str'>
<class 'int'>
Trong Python, mọi số không phải 0 đều là True, 0 là False
so = 0
gia_tri_bool = bool(so)
print(type(gia_tri_bool))
print(gia_tri_bool)
Kết quả:
<class 'bool'>
False
Vòng lặp vô tận —— thay while True: bằng while 1:
while 1: # Vòng lặp vô tận, luôn đúng
print("Trả tiền tôi")
Trong Python, mọi chuỗi không rỗng đều là True, chuỗi rỗng là False
chuoi_rong = ""
print(bool(chuoi_rong))
Kết quả:
False
Tóm lại, trong các kiểu dữ liệu cơ bản của Python, các giá trị rỗng đều là False, còn không rỗng thì là True.
danh_sach = [] # Danh sách rỗng
print(bool(danh_sach))
Kết quả:
False
Lưu ý, 0 hoặc khoảng trắng không phải là rỗng, chúng đại diện cho nội dung, kết quả là True
danh_sach_co_0 = [0]
print(bool(danh_sach_co_0))
Kết quả:
True
Dựa vào khái niệm rỗng, ta có thể viết đoạn mã sau, nếu input rỗng thì thoát khỏi vòng lặp vô tận
while 1:
noi_dung = input("Nhập nội dung muốn gửi:")
if noi_dung:
print("Nội dung bạn muốn gửi:", noi_dung)
else:
break