Bài Tập Về Biến (Variables)
Giới Thiệu
Biến như những chiếc hộp đựng đồ trong phòng của bạn. Mỗi chiếc hộp có tên riêng và chứa những thứ khác nhau. Trong Python, biến giúp chúng ta lưu trữ thông tin để sử dụng sau này.
Bài Tập 1: Tạo Biến Đơn Giản
Đề bài: Tạo các biến để lưu thông tin cá nhân của bạn
# Giải pháp
ten = "Nguyễn Văn An"
tuoi = 20
chieu_cao = 1.75
la_hoc_sinh = True
print(f"Tên: {ten}")
print(f"Tuổi: {tuoi}")
print(f"Chiều cao: {chieu_cao}m")
print(f"Là học sinh: {la_hoc_sinh}")
Giải thích:
ten
là biến kiểu string (chuỗi) - như nhãn dán trên hộptuoi
là biến kiểu integer (số nguyên) - như đếm kẹo trong hộpchieu_cao
là biến kiểu float (số thập phân) - như đo nước trong cốcla_hoc_sinh
là biến kiểu boolean (đúng/sai) - như công tắc bật/tắt
Bài Tập 2: Hoán Đổi Giá Trị
Đề bài: Hoán đổi giá trị của hai biến như đổi chỗ đồ trong hai chiếc hộp
# Giải pháp
a = 10
b = 20
print(f"Trước khi đổi: a = {a}, b = {b}")
# Cách 1: Sử dụng biến tạm (như dùng hộp thứ 3)
temp = a
a = b
b = temp
print(f"Sau khi đổi (cách 1): a = {a}, b = {b}")
# Khôi phục để thử cách 2
a, b = 10, 20
# Cách 2: Python magic (như phép thuật Python)
a, b = b, a
print(f"Sau khi đổi (cách 2): a = {a}, b = {b}")
Giải thích:
- Cách 1 giống như dùng hộp thứ 3 để chuyển đồ
- Cách 2 là tính năng đặc biệt của Python - rất tiện lợi!
Bài Tập 3: Tính Toán Với Biến
Đề bài: Tính diện tích và chu vi hình chữ nhật
# Giải pháp
import math
# Nhập dữ liệu
chieu_dai = float(input("Nhập chiều dài: "))
chieu_rong = float(input("Nhập chiều rộng: "))
# Tính toán
dien_tich = chieu_dai * chieu_rong
chu_vi = 2 * (chieu_dai + chieu_rong)
duong_cheo = math.sqrt(chieu_dai**2 + chieu_rong**2)
# Hiển thị kết quả
print(f"\n--- THÔNG TIN HÌNH CHỮ NHẬT ---")
print(f"Chiều dài: {chieu_dai}")
print(f"Chiều rộng: {chieu_rong}")
print(f"Diện tích: {dien_tich}")
print(f"Chu vi: {chu_vi}")
print(f"Đường chéo: {duong_cheo:.2f}")
Giải thích:
- Biến giúp lưu trữ kết quả tính toán
:.2f
làm tròn số thập phân đến 2 chữ số
Bài Tập 4: Kiểu Dữ Liệu Khác Nhau
Đề bài: Thực hành với nhiều kiểu dữ liệu khác nhau
# Giải pháp
# Số nguyên (int) - như đếm táo
so_tao = 5
print(f"Số táo: {so_tao} (kiểu: {type(so_tao)})")
# Số thập phân (float) - như đo nước
luong_nuoc = 3.14
print(f"Lượng nước: {luong_nuoc} lít (kiểu: {type(luong_nuoc)})")
# Chuỗi (string) - như ghi chú
ghi_chu = "Hôm nay trời đẹp"
print(f"Ghi chú: {ghi_chu} (kiểu: {type(ghi_chu)})")
# Boolean - như công tắc
den_bat = True
print(f"Đèn bật: {den_bat} (kiểu: {type(den_bat)})")
# Danh sách (list) - như giỏ đựng nhiều thứ
gio_hang = ["táo", "cam", "chuối"]
print(f"Giỏ hàng: {gio_hang} (kiểu: {type(gio_hang)})")
Bài Tập 5: Chuyển Đổi Kiểu Dữ Liệu
Đề bài: Chuyển đổi giữa các kiểu dữ liệu
# Giải pháp
# Từ string sang số
chuoi_so = "123"
so_nguyen = int(chuoi_so)
so_thap_phan = float(chuoi_so)
print(f"Chuỗi '{chuoi_so}' thành số nguyên: {so_nguyen}")
print(f"Chuỗi '{chuoi_so}' thành số thập phân: {so_thap_phan}")
# Từ số sang string
so = 456
chuoi = str(so)
print(f"Số {so} thành chuỗi: '{chuoi}'")
# Boolean sang số
dung = True
sai = False
print(f"True thành số: {int(dung)}") # 1
print(f"False thành số: {int(sai)}") # 0
# Số sang boolean
print(f"Số 5 thành boolean: {bool(5)}") # True
print(f"Số 0 thành boolean: {bool(0)}") # False
Giải thích:
int()
chuyển thành số nguyênfloat()
chuyển thành số thập phânstr()
chuyển thành chuỗibool()
chuyển thành True/False
Bài Tập 6: Phạm Vi Biến (Variable Scope)
Đề bài: Hiểu về phạm vi của biến
# Giải pháp
# Biến toàn cục (global) - như đồ dùng chung
ten_truong = "Trường THPT ABC"
def thong_tin_hoc_sinh():
# Biến cục bộ (local) - như đồ dùng riêng trong phòng
ten_hoc_sinh = "Nguyễn Văn An"
lop = "12A1"
print(f"Tên trường: {ten_truong}") # Dùng biến toàn cục
print(f"Tên học sinh: {ten_hoc_sinh}") # Biến cục bộ
print(f"Lớp: {lop}") # Biến cục bộ
# Gọi hàm
thong_tin_hoc_sinh()
# Thử truy cập biến cục bộ bên ngoài hàm (sẽ lỗi)
try:
print(ten_hoc_sinh) # Lỗi!
except NameError as e:
print(f"Lỗi: {e}")
print("Không thể dùng biến cục bộ bên ngoài hàm!")