Chương 2: “Hộp Chứa” Thông Tin – Biến và Kiểu Dữ Liệu

Ở chương trước, chúng ta đã ra lệnh cho máy tính in ra dòng chữ “Hello, World!”. Nhưng một chương trình thực sự hữu ích cần phải có khả năng “ghi nhớ” thông tin. Ví dụ, nó cần nhớ tên của bạn sau khi bạn nhập vào, hoặc nhớ kết quả của một phép tính. Trong chương này, chúng ta sẽ khám phá cách “đưa bộ nhớ” cho chương trình của mình.

Biến là gì? Một “Chiếc Hộp” Đa Năng

Hãy tưởng tượng bạn có một chiếc hộp. Bạn dán nhãn “Đồ chơi” lên chiếc hộp và đặt những món đồ chơi vào bên trong. Bất cứ khi nào bạn cần tìm đồ chơi, bạn chỉ cần tìm chiếc hộp có nhãn đó.

Trong lập trình, biến (variable) hoạt động y hệt như vậy.

  • Nó là một chiếc hộp có nhãn dùng để lưu trữ thông tin.
  • Tên biến (variable name) chính là cái nhãn dán trên hộp.
  • Giá trị (value) là thứ bạn đặt vào trong hộp.
  • Dấu bằng (=) là hành động “đặt vào”. Hành động này gọi là phép gán (assignment).

Hãy xem ví dụ:

Python

# Tạo một biến tên là `loi_chao` và gán cho nó giá trị là "Xin chào các bạn!"
loi_chao = "Xin chào các bạn!"

# Bây giờ, chúng ta có thể yêu cầu máy tính in ra thứ được chứa trong hộp `loi_chao`
print(loi_chao)

Bạn có thể thay đổi giá trị bên trong “hộp” bất cứ lúc nào:

Python

loi_chao = "Chào mừng đến với chương 2"
print(loi_chao)

Cách Đặt Tên Biến Đúng Chuẩn

Việc đặt tên biến rõ ràng sẽ giúp chương trình của bạn dễ đọc hơn rất nhiều. Hãy tuân thủ các quy tắc và quy ước sau:

Quy tắc (Bắt buộc):

  1. Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới (_).
  2. Tên biến chỉ được chứa các ký tự: chữ cái (a-z, A-Z), số (0-9), và dấu gạch dưới (_).
  3. Tên biến có phân biệt chữ hoa và chữ thường (tuoiTuoi là hai biến khác nhau).

Quy ước (Nên theo để code đẹp):

  • Sử dụng kiểu snake_case: các từ viết thường được nối với nhau bằng dấu gạch dưới.
  • Đặt tên có ý nghĩa, mô tả rõ giá trị mà nó chứa.
Tên Tốt 👍 Tên Tệ 👎
ten_nguoi_dung t hoặc tennd
so_luong_san_pham slsp
diem_trung_binh dtb

Các Kiểu “Đồ Vật” Bên Trong Hộp – Kiểu Dữ Liệu Cơ Bản

Máy tính cần biết thứ bạn đặt vào “hộp” là loại gì: là con số, là văn bản, hay là một cái gì khác? Điều này được gọi là kiểu dữ liệu (data type).

Python có 4 kiểu dữ liệu cơ bản mà bạn sẽ sử dụng liên tục:

  1. Số Nguyên (Integer – int): Là các số nguyên, không có phần thập phân.

    Python

    so_hoc_sinh = 30
    nhiet_do_am = -5
    
  2. Số Thực (Float – float): Là các số có phần thập phân.

    Python

    gia_banh = 25.5
    pi = 3.14159
    
  3. Chuỗi Ký Tự (String – str): Là một dãy các ký tự, hay còn gọi là văn bản. Giá trị của chuỗi phải được đặt trong dấu nháy đơn (') hoặc nháy kép (").

    Python

    ten_sach = "Lập trình Python"
    email = 'user@example.com'
    
  4. Logic (Boolean – bool): Chỉ có thể nhận một trong hai giá trị: True (Đúng) hoặc False (Sai). Kiểu dữ liệu này cực kỳ quan trọng khi chúng ta học về câu lệnh điều kiện ở chương 4.

    Python

    da_dang_nhap = True
    troi_dang_mua = False
    

Thực Hiện Phép Toán

Khi đã có các biến chứa số, chúng ta có thể thực hiện các phép tính toán học:

Python

a = 10
b = 3

print("Tổng:", a + b)           # Cộng: 13
print("Hiệu:", a - b)           # Trừ: 7
print("Tích:", a * b)           # Nhân: 30
print("Chia:", a / b)           # Chia: 3.333... (luôn ra số thực)
print("Chia lấy nguyên:", a // b) # Chia lấy phần nguyên: 3
print("Chia lấy dư:", a % b)     # Chia lấy phần dư: 1 (Hữu ích để kiểm tra số chẵn/lẻ)
print("Lũy thừa:", a ** b)      # Lũy thừa: 10^3 = 1000

Lưu ý: Phép cộng (+) và nhân (*) cũng có tác dụng đặc biệt với chuỗi:

Python

ho = "Nguyễn Văn "
ten = "An"
print(ho + ten)  # Nối chuỗi: "Nguyễn Văn An"

print("Ha" * 3)    # Lặp lại chuỗi: "HaHaHa"

Tương Tác Với Người Dùng Qua Hàm input()

Chương trình sẽ thú vị hơn nhiều nếu nó có thể “trò chuyện” với người dùng. Hàm input() cho phép chúng ta làm điều đó. Nó sẽ hiển thị một câu hỏi, sau đó tạm dừng và chờ người dùng nhập câu trả lời.

Python

ten_nguoi_dung = input("Chào bạn, bạn tên là gì? ")
print("Rất vui được gặp bạn,", ten_nguoi_dung)

Một điều cực kỳ quan trọng: Hàm input() luôn luôn trả về dữ liệu dưới dạng chuỗi (string), ngay cả khi bạn nhập vào một con số.

Hãy xem điều gì xảy ra khi chúng ta thử tính tuổi:

Python

tuoi_hien_tai_str = input("Bạn bao nhiêu tuổi? ")
# Dòng dưới sẽ gây LỖI! Vì không thể cộng một chuỗi với một số.
# tuoi_nam_sau = tuoi_hien_tai_str + 1

Để sửa lỗi này, chúng ta cần “ép kiểu” (type casting) – tức là chuyển đổi chuỗi số thành một số nguyên (int) hoặc số thực (float).

Python

tuoi_hien_tai_str = input("Bạn bao nhiêu tuổi? ")
tuoi_hien_tai_int = int(tuoi_hien_tai_str)  # Ép kiểu từ chuỗi sang số nguyên

tuoi_nam_sau = tuoi_hien_tai_int + 1
print("Tuyệt vời! Năm sau bạn sẽ", tuoi_nam_sau, "tuổi.")

🎯 Tổng kết chương 2

Qua chương này, bạn đã học được những khái niệm cốt lõi:

  • Biến là các “hộp chứa” thông tin có dán nhãn.
  • Các kiểu dữ liệu cơ bản: int, float, str, bool.
  • Cách thực hiện các phép toán cơ bản.
  • Cách dùng input() để nhận dữ liệu từ người dùng và dùng int(), float() để ép kiểu.

Giờ đây, các chương trình của bạn đã có “bộ nhớ” và có thể tương tác. Bạn đã sẵn sàng để dạy cho nó cách xử lý các danh sách dữ liệu phức tạp hơn chưa? Hãy cùng khám phá trong chương tiếp theo!