1. Bài tập về lệnh rẽ nhánh
Dưới đây là 5 bài tập thực hành về lệnh rẽ nhánh (if...else
, if...elif...else
) trong Python, kèm theo gợi ý giải:
Bài 1: Kiểm tra số âm, dương hay bằng 0
Viết chương trình yêu cầu người dùng nhập một số nguyên n
, sau đó kiểm tra và in ra:
"Số dương"
nếun > 0
"Số âm"
nếun < 0
"Bằng 0"
nếun == 0
Ví dụ:
Nhập số: 5 Số dương
Nhập số: -3 Số âm
Gợi ý giải:
n = int(input("Nhập số: ")) if n > 0: print("Số dương") elif n < 0: print("Số âm") else: print("Bằng 0")
Bài 2: Kiểm tra số chẵn hay lẻ
Viết chương trình yêu cầu người dùng nhập một số nguyên n
, sau đó kiểm tra xem số đó là chẵn hay lẻ.
Ví dụ:
Nhập số: 8 Số chẵn
Nhập số: 7 Số lẻ
Gợi ý giải:
n = int(input("Nhập số: ")) if n % 2 == 0: print("Số chẵn") else: print("Số lẻ")
Bài 3: Tìm số lớn nhất trong ba số
Viết chương trình yêu cầu người dùng nhập ba số nguyên, sau đó in ra số lớn nhất trong ba số đó.
Ví dụ:
Nhập số thứ nhất: 10 Nhập số thứ hai: 25 Nhập số thứ ba: 7 Số lớn nhất là: 25
Gợi ý giải:
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) c = int(input("Nhập số thứ ba: ")) if a >= b and a >= c: print("Số lớn nhất là:", a) elif b >= a and b >= c: print("Số lớn nhất là:", b) else: print("Số lớn nhất là:", c)
Bài 4: Tính điểm trung bình và xếp loại học lực
Viết chương trình yêu cầu người dùng nhập điểm trung bình (0 – 10) của một học sinh và xếp loại học lực như sau:
"Giỏi"
nếu điểm ≥ 8"Khá"
nếu 6.5 ≤ điểm < 8"Trung bình"
nếu 5 ≤ điểm < 6.5"Yếu"
nếu điểm < 5
Ví dụ:
Nhập điểm trung bình: 7.5 Xếp loại: Khá
Gợi ý giải:
diem = float(input("Nhập điểm trung bình: ")) if 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: Yếu")
Bài 5: Kiểm tra năm nhuận
Viết chương trình yêu cầu người dùng nhập một năm, sau đó kiểm tra xem năm đó có phải là năm nhuận hay không.
Quy tắc:
- Năm chia hết cho 400 → Năm nhuận
- Năm chia hết cho 4 nhưng không chia hết cho 100 → Năm nhuận
- Các trường hợp còn lại không phải là năm nhuận
Ví dụ:
Nhập năm: 2024 2024 là năm nhuận.
Nhập năm: 2023 2023 không phải là năm nhuận.
Gợi ý giải:
year = int(input("Nhập năm: ")) if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0): print(year, "là năm nhuận.") else: print(year, "không phải là năm nhuận.") <h2>
2. Bài tập về vòng lặp
Dưới đây là 5 bài tập thực hành về vòng lặp trong Python kèm theo gợi ý giải:
Bài 1: Tính tổng các số từ 1 đến n
Viết chương trình yêu cầu người dùng nhập một số nguyên dương n
, sau đó tính tổng các số từ 1
đến n
bằng vòng lặp for
.
Ví dụ:
Nhập n: 5 Tổng = 15 # (1 + 2 + 3 + 4 + 5)
Gợi ý:
n = int(input("Nhập n: ")) tong = 0 for i in range(1, n + 1): tong += i print("Tổng =", tong)
Bài 2: Kiểm tra số nguyên tố
Viết chương trình yêu cầu người dùng nhập một số nguyên n
, sau đó kiểm tra xem n
có phải là số nguyên tố hay không.
Gợi ý:
- Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó.
- Dùng vòng lặp
for
để kiểm tra số chia hết trong khoảng từ2
đếnn-1
.
Ví dụ:
Nhập n: 7 7 là số nguyên tố.
Nhập n: 10
10 không phải số nguyên tố.
[/python]
Gợi ý giải:
n = int(input("Nhập n: ")) if n < 2: print(n, "không phải số nguyên tố") else: is_prime = True for i in range(2, int(n ** 0.5) + 1): if n % i == 0: is_prime = False break if is_prime: print(n, "là số nguyên tố") else: print(n, "không phải số nguyên tố")
Bài 3: In bảng cửu chương
Viết chương trình in ra bảng cửu chương từ 1 đến 9.
Gợi ý:
- Dùng vòng lặp lồng nhau (
for
trongfor
).
Kết quả mong muốn:
1 x 1 = 1 1 x 2 = 2 <h1>…</h1> 9 x 9 = 81
Gợi ý giải:
for i in range(1, 10): for j in range(1, 10): print(f"{i} x {j} = {i * j}") print() # Xuống dòng sau mỗi bảng
Bài 4: Đảo ngược một số nguyên
Viết chương trình yêu cầu người dùng nhập một số nguyên n
, sau đó in ra số đó theo thứ tự ngược lại.
Ví dụ:
Nhập số: 12345 Số đảo ngược: 54321
Gợi ý giải:
n = int(input("Nhập số: ")) reversed_n = 0 while n > 0: reversed_n = reversed_n * 10 + n % 10 n = n // 10 print("Số đảo ngược:", reversed_n)
Bài 5: Vẽ tam giác số
Viết chương trình yêu cầu người dùng nhập n
, sau đó in ra tam giác số có n
dòng.
Ví dụ:
Nhập n: 5 1 12 123 1234 12345
Gợi ý giải:
n = int(input("Nhập n: ")) for i in range(1, n + 1): for j in range(1, i + 1): print(j, end="") print() # Xuống dòng
Bài tập kết hợp vòng lặp và lệnh rẽ nhánh
Dưới đây là 5 bài tập kết hợp vòng lặp và lệnh rẽ nhánh trong Python, kèm theo gợi ý giải:
Bài 1: Đếm số chẵn, lẻ trong một danh sách
Viết chương trình yêu cầu người dùng nhập vào một danh sách gồm n
số nguyên. Chương trình sẽ đếm và in ra số lượng số chẵn và số lẻ trong danh sách.
Ví dụ:
Nhập số lượng phần tử: 5 Nhập số thứ 1: 2 Nhập số thứ 2: 7 Nhập số thứ 3: 8 Nhập số thứ 4: 3 Nhập số thứ 5: 6 Số chẵn: 3 Số lẻ: 2
Gợi ý giải:
n = int(input("Nhập số lượng phần tử: ")) even_count = 0 odd_count = 0 for i in range(n): num = int(input(f"Nhập số thứ {i+1}: ")) if num % 2 == 0: even_count += 1 else: odd_count += 1 print("Số chẵn:", even_count) print("Số lẻ:", odd_count)
Bài 2: Kiểm tra số nguyên tố trong khoảng từ 1 đến n
Viết chương trình yêu cầu người dùng nhập một số nguyên n
, sau đó in ra tất cả các số nguyên tố từ 1 đến n.
Ví dụ:
Nhập n: 10 Các số nguyên tố từ 1 đến 10 là: 2, 3, 5, 7
Gợi ý giải:
n = int(input("Nhập n: ")) print("Các số nguyên tố từ 1 đến", n, "là:", end=" ") for num in range(2, n + 1): is_prime = True for i in range(2, int(num ** 0.5) + 1): if num % i == 0: is_prime = False break if is_prime: print(num, end=", ")
Bài 3: Tính tổng các số chia hết cho 3 hoặc 5 trong khoảng từ 1 đến n
Viết chương trình yêu cầu người dùng nhập một số n
, sau đó tính tổng các số từ 1 đến n mà chia hết cho 3 hoặc 5.
Ví dụ:
Nhập n: 10 Tổng các số chia hết cho 3 hoặc 5: 33
(Vì: 3 + 5 + 6 + 9 + 10 = 33)
Gợi ý giải:
n = int(input("Nhập n: ")) tong = 0 for i in range(1, n + 1): if i % 3 == 0 or i % 5 == 0: tong += i print("Tổng các số chia hết cho 3 hoặc 5:", tong)
Bài 4: Vẽ tam giác sao
Viết chương trình yêu cầu người dùng nhập n
, sau đó in ra một tam giác sao có n
dòng.
Ví dụ:
Nhập n: 5 * **
Gợi ý giải:
n = int(input("Nhập n: ")) for i in range(1, n + 1): print("*" * i)
Bài 5: Đoán số bí mật
Viết chương trình chọn một số ngẫu nhiên trong khoảng từ 1
đến 100
. Người dùng sẽ đoán số này, và chương trình sẽ cho biết:
"Số bạn đoán nhỏ hơn số bí mật"
nếu số đoán nhỏ hơn số bí mật."Số bạn đoán lớn hơn số bí mật"
nếu số đoán lớn hơn số bí mật."Chúc mừng! Bạn đã đoán đúng."
nếu đoán đúng.
Chương trình chạy cho đến khi người dùng đoán đúng.
Ví dụ:
Nhập số bạn đoán: 50 Số bạn đoán nhỏ hơn số bí mật. Nhập số bạn đoán: 75 Số bạn đoán lớn hơn số bí mật. Nhập số bạn đoán: 62 Chúc mừng! Bạn đã đoán đúng.
Gợi ý giải:
import random secret_number = random.randint(1, 100) guess = None while guess != secret_number: guess = int(input("Nhập số bạn đoán: ")) if guess < secret_number: print("Số bạn đoán nhỏ hơn số bí mật.") elif guess > secret_number: print("Số bạn đoán lớn hơn số bí mật.") else: print("Chúc mừng! Bạn đã đoán đúng.")