Python: Cơ bản về các kiểu dữ liệu

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

Thẻ: python kiểu dữ liệu số nguyên số thực boolean

Đăng vào ngày 5 tháng 6 lúc 21:14