Học lập trình không chỉ là đọc hướng dẫn — mà còn là xắn tay áo lên và thực hành. Trong bài viết này, chúng ta sẽ đi qua 20 bài tập đơn giản rất phù hợp cho người mới bắt đầu. Mỗi bài tập đều có ví dụ và giải pháp bằng Python để bạn có thể thử ngay lập tức.
1. In “Hello, World!”
Yêu cầu bài tập: Viết chương trình đơn giản nhất có thể để xuất một thông điệp lên màn hình. Điều này cho thấy cách chạy mã và nhận kết quả hiển thị.
Những gì bạn sẽ sử dụng: hàm print() — không có đầu vào, chỉ có đầu ra.
Ví dụ đầu ra
Hello, World!
Giải pháp Python
print("Hello, World!")
2. Máy Tính Đơn Giản
Yêu cầu bài tập: Lấy hai số từ người dùng và tính tổng, hiệu, tích và thương của chúng. Điều này dạy bạn cách xử lý đầu vào và phép toán cơ bản.
Những gì bạn sẽ sử dụng: input() để lấy số, float() để chuyển đổi chúng, các toán tử số học (+ - * /), và print() để hiển thị kết quả.
Ví dụ đầu vào
8
2
Ví dụ đầu ra
Addition: 10.0
Subtraction: 6.0
Multiplication: 16.0
Division: 4.0
Giải pháp Python
a = float(input("Nhập số đầu tiên: ").strip())
b = float(input("Nhập số thứ hai: ").strip())
print("Addition:", a + b)
print("Subtraction:", a - b)
print("Multiplication:", a * b)
print("Division:", a / b if b != 0 else "Vô cực")
3. Kiểm Tra Số Lẻ Hay Chẵn
Yêu cầu bài tập: Quyết định xem một số nguyên là số lẻ hay số chẵn.
Những gì bạn sẽ sử dụng: modulo %, biểu thức điều kiện
Ví dụ đầu vào
7 là số lẻ
Ví dụ đầu ra
7 là số lẻ
Python
n = int(input().strip())
print(f"{n} là {'chẵn' if n % 2 == 0 else 'lẻ'}")
4. Trò Chơi Đoán Số
Yêu cầu bài tập: Máy tính chọn một số ngẫu nhiên; người dùng tiếp tục đoán cho đến khi đúng, với gợi ý cao/thấp.
Những gì bạn sẽ sử dụng: random.randint(), vòng lặp while, if/elif/else.
Ví dụ chạy
Đoán (1-10): 5
Quá thấp
Đoán (1-10): 8
Đúng rồi!
Giải pháp Python
import random
secret = random.randint(1, 10)
while True:
g = int(input("Đoán (1-10): ") or 0)
if g < secret:
print("Quá thấp")
elif g > secret:
print("Quá cao")
else:
print("Đúng rồi!")
break
5. Bảng Cửu Chương
Yêu cầu bài tập: In bảng cửu chương từ 1 đến 10 cho một số đã cho.
Những gì bạn sẽ sử dụng: vòng lặp for, f-strings.
Ví dụ đầu vào
3
Ví dụ đầu ra
3 x 1 = 3
...
3 x 10 = 30
Giải pháp Python
n = int(input().strip())
for i in range(1, 11):
print(f"{n} x {i} = {n*i}")
6. Kiểm Tra Palindrome
Yêu cầu bài tập: Kiểm tra xem văn bản có đọc giống nhau từ trước ra sau (bỏ qua chữ hoa và khoảng trắng/dấu câu) hay không.
Những gì bạn sẽ sử dụng: dọn dẹp chuỗi, .lower(), slicing [::-1].
Ví dụ đầu vào
RaceCar
Ví dụ đầu ra
RaceCar là một palindrome
Giải pháp Python
s = input().strip()
clean = ''.join(ch.lower() for ch in s if ch.isalnum())
print(f"{s} là {'một palindrome' if clean == clean[::-1] else 'không phải là palindrome'}")
7. Dãy Fibonacci
Yêu cầu bài tập: In ra n số Fibonacci đầu tiên.
Những gì bạn sẽ sử dụng: biến để theo dõi hai giá trị cuối cùng, vòng lặp for, nối danh sách.
Ví dụ đầu vào
6
Ví dụ đầu ra
0 1 1 2 3 5
Giải pháp Python
n = int(input().strip())
a, b = 0, 1
seq = []
for _ in range(n):
seq.append(str(a))
a, b = b, a + b
print(' '.join(seq))
8. Máy Tính Giai Thừa
Yêu cầu bài tập: Tính giai thừa n! (tích của 1..n).
Những gì bạn sẽ sử dụng: vòng lặp for để nhân (hoặc đệ quy).
Ví dụ đầu vào
5
Ví dụ đầu ra
120
Giải pháp Python
n = int(input().strip())
f = 1
for i in range(2, n+1):
f *= i
print(f)
9. Đếm Từ
Yêu cầu bài tập: Đếm xem có bao nhiêu từ trong một câu.
Những gì bạn sẽ sử dụng: str.split(), len().
Ví dụ đầu vào
Tôi yêu lập trình
Ví dụ đầu ra
3
Giải pháp Python
s = input().strip()
print(len(s.split()))
10. Danh Sách Công Việc (Mini CLI)
Yêu cầu bài tập: Thêm, xem và xóa công việc trong một menu lặp đơn giản.
Những gì bạn sẽ sử dụng: danh sách, vòng lặp while, if/elif/else.
Ví dụ chạy
1
Hoàn thành bài tập về nhà
2
1 Hoàn thành bài tập về nhà
Giải pháp Python
tasks = []
while True:
print("1) Thêm 2) Xem 3) Xóa 4) Thoát")
c = input("> ").strip()
if c == "1":
tasks.append(input("Công việc: ").strip()); print("Đã thêm.")
elif c == "2":
if tasks:
for i, t in enumerate(tasks, 1):
print(i, t)
else:
print("Không có công việc.")
elif c == "3":
i = int(input("Chỉ số: ") or 0)
if 1 <= i <= len(tasks):
tasks.pop(i-1); print("Đã xóa.")
else:
print("Chỉ số không hợp lệ.")
elif c == "4":
break
else:
print("Thử lại từ 1-4.")
11. Đảo Ngược Một Chuỗi
Yêu cầu bài tập: Xuất phiên bản đảo ngược của văn bản đầu vào.
Những gì bạn sẽ sử dụng: slicing [::-1].
Ví dụ đầu vào
hello
Ví dụ đầu ra
olleh
Giải pháp Python
print(input().strip()[::-1])
12. Số Lớn Nhất Trong Ba Số
Yêu cầu bài tập: Đọc ba số và in ra số lớn nhất.
Những gì bạn sẽ sử dụng: input().split(), map(), max().
Ví dụ đầu vào
4 9 2
Ví dụ đầu ra
9
Giải pháp Python
a, b, c = map(float, input().split())
print(max(a, b, c))
13. Bộ Chuyển Đổi Nhiệt Độ (C ↔ F)
Yêu cầu bài tập: Chuyển đổi Celsius sang Fahrenheit hoặc ngược lại dựa trên tiền tố thang đo.
Những gì bạn sẽ sử dụng: điều kiện, phép toán.
Ví dụ đầu vào
C 25
Ví dụ đầu ra
77.0
Giải pháp Python
scale, val = input().split()
x = float(val)
print(x * 9/5 + 32 if scale.upper() == 'C' else (x - 32) * 5/9)
14. Lãi Suất Đơn Giản
Yêu cầu bài tập: Tính lãi suất đơn giản bằng P, R, T.
Những gì bạn sẽ sử dụng: map(float, ...), công thức toán học P*R*T/100.
Ví dụ đầu vào
1000 5 2
Ví dụ đầu ra
100.0
Giải pháp Python
P, R, T = map(float, input().split())
print(P * R * T / 100)
15. Kiểm Tra Số Nguyên Tố
Yêu cầu bài tập: Xác định xem n có phải là số nguyên tố hay không.
Những gì bạn sẽ sử dụng: vòng lặp đến √n, dừng sớm khi tìm thấy ước số.
Ví dụ đầu vào
13
Ví dụ đầu ra
nguyên tố
Giải pháp Python
n = int(input().strip())
if n < 2:
print("không phải là nguyên tố")
else:
i, ok = 2, True
while i*i <= n:
if n % i == 0:
ok = False; break
i += 1
print("nguyên tố" if ok else "không phải là nguyên tố")
16. Tổng Các Chữ Số
Yêu cầu bài tập: Cộng tất cả các ký tự số trong đầu vào.
Những gì bạn sẽ sử dụng: biểu thức sinh ra trên chuỗi, sum().
Ví dụ đầu vào
1234
Ví dụ đầu ra
10
Giải pháp Python
s = input().strip()
print(sum(int(ch) for ch in s if ch.isdigit()))
17. Đếm Nguyên Âm
Yêu cầu bài tập: Đếm xem có bao nhiêu nguyên âm trong văn bản đầu vào.
Những gì bạn sẽ sử dụng: .lower(), kiểm tra sự có mặt với một tập hợp.
Ví dụ đầu vào
programming
Ví dụ đầu ra
3
Giải pháp Python
s = input().lower()
vowels = set('aeiou')
print(sum(ch in vowels for ch in s))
18. Búa – Giấy – Kéo
Yêu cầu bài tập: Chơi một ván với máy tính và báo cáo thắng/thua/hòa.
Những gì bạn sẽ sử dụng: random.choice(), quy tắc thắng dựa trên tuple, if/elif.
Ví dụ chạy
rock
Máy tính chọn: scissors
Bạn thắng!
Giải pháp Python
import random
user = input("rock/paper/scissors: ").strip().lower()
cpu = random.choice(["rock", "paper", "scissors"])
print("Máy tính chọn:", cpu)
if user == cpu:
print("Hòa!")
elif (user, cpu) in {("rock","scissors"), ("paper","rock"), ("scissors","paper")}:
print("Bạn thắng!")
else:
print("Bạn thua!")
19. Min & Max Trong Một Danh Sách
Yêu cầu bài tập: Đọc các số trên một dòng và in ra số nhỏ nhất và lớn nhất.
Những gì bạn sẽ sử dụng: split(), map(float), min(), max().
Ví dụ đầu vào
5 9 1 7 3
Ví dụ đầu ra
1 9
Giải pháp Python
nums = list(map(float, input().split()))
print(min(nums), max(nums))
20. Trình Kiểm Tra Mật Khẩu Cơ Bản
Yêu cầu bài tập: Kiểm tra một mật khẩu: độ dài ≥ 8, có ít nhất một chữ cái và một chữ số.
Những gì bạn sẽ sử dụng: len(), any(), .isalpha(), .isdigit(), logic boolean.
Ví dụ đầu vào
Hello123
Ví dụ đầu ra
valid
Giải pháp Python
pw = input().strip()
ok = (len(pw) >= 8 and any(ch.isalpha() for ch in pw) and any(ch.isdigit() for ch in pw))
print("valid" if ok else "invalid")