4 bài tập Python lớp 9 về câu lệnh điều kiện có lời giải
4 bài tập Python lớp 9 về câu lệnh điều kiện có lời giải
Câu lệnh điều kiện giúp chương trình biết cách lựa chọn hành động. Nếu điểm số đạt yêu cầu, chương trình thông báo đạt; nếu trời mưa, chương trình nhắc mang áo mưa. Trong Python, em thường dùng if, elif và else cùng các toán tử ==, !=, >, <, >=, <=.
Bài viết gồm bốn bài tập Python lớp 9. Em hãy đọc đề, tự suy nghĩ theo phần gợi ý rồi mới xem lời giải. Sau khi copy code, hãy chạy ít nhất ba bộ dữ liệu: trường hợp thông thường, trường hợp đúng ranh giới và trường hợp có thể gây lỗi.
Nhớ nhanh về if, elif và else
Khối lệnh sau if chỉ chạy khi điều kiện đúng. elif dùng để kiểm tra thêm một điều kiện khác, còn else chạy khi tất cả điều kiện trước đó đều sai. Python dùng thụt đầu dòng để xác định khối lệnh, vì vậy em cần thụt đều bằng bốn dấu cách.
Bài 1: Kiểm tra số dương, âm hay bằng 0
Đề bài: Nhập một số nguyên và cho biết số đó là số dương, số âm hay số 0.
Gợi ý
Kiểm tra lần lượt n > 0, n < 0. Nếu cả hai đều sai thì số đó bằng 0.
Lời giải hoàn chỉnh
n = int(input("Nhập một số nguyên: "))
if n > 0:
print("Đây là số dương")
elif n < 0:
print("Đây là số âm")
else:
print("Đây là số 0")
Giải thích: Hai điều kiện đầu loại trừ nhau. Khi nhập 8, chương trình đi vào nhánh dương; nhập -3, đi vào nhánh âm; nhập 0, dùng else. Đây là mẫu điều kiện ba nhánh rất thường gặp.
Bài 2: Xếp loại học lực theo điểm trung bình
Đề bài: Nhập điểm trung bình từ 0 đến 10. Xếp loại Giỏi nếu từ 8 trở lên, Khá nếu từ 6.5 đến dưới 8, Trung bình nếu từ 5 đến dưới 6.5, còn lại là Chưa đạt. Nếu điểm ngoài khoảng 0 đến 10, báo dữ liệu không hợp lệ.
Gợi ý
Kiểm tra dữ liệu hợp lệ trước bằng điều kiện 0 <= diem <= 10. Sau đó xét các mốc từ cao xuống thấp để không bị nhầm nhánh.
Lời giải hoàn chỉnh
diem = float(input("Nhập điểm trung bình: "))
if diem < 0 or diem > 10:
print("Điểm không hợp lệ")
elif diem >= 8:
print("Xếp loại: Giỏi")
elif diem >= 6.5:
print("Xếp loại: Khá")
elif diem >= 5:
print("Xếp loại: Trung bình")
else:
print("Xếp loại: Chưa đạt")
Giải thích: Toán tử or chỉ cần một vế đúng là cả điều kiện đúng. Các mốc được xét từ 8 xuống 5, nên điểm 8 chỉ vào nhánh Giỏi. Hãy thử 10, 8, 6.5, 5, 4.9 và -1.
Bài 3: Tìm số lớn nhất trong ba số
Đề bài: Nhập ba số a, b, c và in ra số lớn nhất. Nếu có hai hoặc ba số bằng nhau, chương trình vẫn phải chạy bình thường.
Gợi ý
Có thể dùng hàm có sẵn max(), nhưng để luyện điều kiện, em hãy dùng biến lon_nhat rồi so sánh từng số với biến đó.
Lời giải hoàn chỉnh
a = float(input("Nhập a: "))
b = float(input("Nhập b: "))
c = float(input("Nhập c: "))
lon_nhat = a
if b > lon_nhat:
lon_nhat = b
if c > lon_nhat:
lon_nhat = c
print(f"Số lớn nhất là {lon_nhat}")
Giải thích: Ban đầu tạm coi a là lớn nhất. Nếu b lớn hơn, cập nhật biến; sau đó làm tương tự với c. Dùng hai if độc lập giúp chương trình kiểm tra đủ cả hai số còn lại.
Bài 4: Tính cước gửi xe theo số giờ
Đề bài: Tính tiền gửi xe: 2 giờ đầu giá 5.000 đồng, từ giờ thứ 3 đến giờ thứ 5 tính 3.000 đồng mỗi giờ, trên 5 giờ tính 2.000 đồng mỗi giờ. Nếu số giờ không dương, báo lỗi.
Gợi ý
Chia bài toán thành ba khoảng. Với mỗi khoảng, tính phần tiền tương ứng. Dùng ceil() để làm tròn số giờ lẻ lên, nên cần import thư viện math.
Lời giải hoàn chỉnh
import math
so_gio = float(input("Nhập số giờ gửi xe: "))
if so_gio <= 0:
print("Số giờ không hợp lệ")
else:
gio = math.ceil(so_gio)
if gio <= 2:
tien = 5000
elif gio <= 5:
tien = 5000 + (gio - 2) * 3000
else:
tien = 5000 + 3 * 3000 + (gio - 5) * 2000
print(f"Số giờ tính tiền: {gio}")
print(f"Tiền gửi xe: {tien:,} đồng")
Giải thích: math.ceil() làm tròn 2.1 giờ thành 3 giờ. Ở nhánh thứ hai, chỉ tính thêm phần giờ vượt quá 2. Ở nhánh cuối, cộng tiền 2 giờ đầu, 3 giờ tiếp theo rồi tính phần còn lại. Thử 1, 2, 2.5, 5, 6 và 0 giờ.
Tổng kết
Qua bốn bài, em đã luyện điều kiện đơn, nhiều nhánh, điều kiện kết hợp và bài toán theo khoảng. Hãy xem tiếp bài về biến, input và output nếu cần ôn lại kiến thức nền, sau đó chuyển sang bài tập Python lớp 9 về vòng lặp.
Mẹo học: trước khi viết code, hãy viết các trường hợp thành bảng. Việc sắp xếp điều kiện từ dễ đến khó hoặc từ mốc cao xuống thấp sẽ giúp chương trình chính xác hơn.
Cách tránh lỗi khi viết điều kiện
Em nên viết điều kiện theo từng trường hợp rõ ràng, không gộp quá nhiều ý trong một dòng. Hãy chú ý sự khác nhau giữa = và ==: dấu bằng dùng để gán giá trị, còn hai dấu bằng dùng để so sánh. Với nhiều điều kiện, and yêu cầu tất cả cùng đúng, còn or chỉ cần một điều kiện đúng. Nếu chương trình cho kết quả bất ngờ, hãy in tạm các biến trung gian để quan sát.
Bài tự luyện thêm: kiểm tra một năm có phải năm nhuận không, xác định tam giác hợp lệ từ ba cạnh và tính tiền điện theo bậc. Trước khi code, em hãy lập bảng các trường hợp và mốc biên.
Từ khoá: 4 bai tap python lop 9 ve cau lenh dieu kien co loi giai, bài tập Python lớp 9 câu lệnh điều kiện, if elif else Python có lời giải