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ụ:
# 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:
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):
- Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới (
_
). - 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 (
_
). - Tên biến có phân biệt chữ hoa và chữ thường (
tuoi
vàTuoi
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.
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:
-
Số Nguyên (Integer –
int
): Là các số nguyên, không có phần thập phân.Pythonso_hoc_sinh = 30 nhiet_do_am = -5
-
Số Thực (Float –
float
): Là các số có phần thập phân.Pythongia_banh = 25.5 pi = 3.14159
-
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 ("
).Pythonten_sach = "Lập trình Python" email = 'user@example.com'
-
Logic (Boolean –
bool
): Chỉ có thể nhận một trong hai giá trị:True
(Đúng) hoặcFalse
(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.Pythonda_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:
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:
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.
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:
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
).
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ùngint()
,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!