Bạn đang học lập trình Python nhưng chưa biết bắt đầu từ đâu? Bài viết này tổng hợp các bài tập Python cho người mới bắt đầu với lời giải chi tiết, giúp bạn rèn luyện tư duy thuật toán và làm quen với cú pháp Python một cách hiệu quả. Nếu bạn cần lộ trình học Python đầy đủ hơn, hãy tham khảo hướng dẫn chi tiết từ con số 0.
Python là gì và tại sao nên học?
Python là ngôn ngữ lập trình bậc cao, mã nguồn mở, được thiết kế với triết lý “dễ đọc, dễ viết”. Guido van Rossum tạo ra Python và phát hành lần đầu năm 1991. Ngôn ngữ này nổi bật với cú pháp gần gũi với ngôn ngữ tự nhiên, giúp người mới tiếp cận lập trình dễ dàng hơn.
Python được ứng dụng rộng rãi trong:
- Phát triển web: Xây dựng backend với Django, Flask
- Khoa học dữ liệu: Phân tích dữ liệu với Pandas, NumPy
- Machine Learning: Xây dựng mô hình AI với TensorFlow, PyTorch
- Tự động hóa: Viết script xử lý tác vụ lặp đi lặp lại
- Phát triển game: Tạo game 2D với Pygame
bai-tap-python-1
Cấu trúc bài tập Python chuẩn
Một bài tập Python hoàn chỉnh thường bao gồm:
Yêu cầu bài toán: Mô tả rõ ràng input, output và logic xử lý cần thực hiện.
Gợi ý tiếp cận: Hướng dẫn cách phân tích bài toán và lựa chọn cấu trúc dữ liệu phù hợp.
Lời giải mẫu: Code Python hoàn chỉnh kèm giải thích từng bước.
Test cases: Các trường hợp kiểm thử để xác minh tính đúng đắn của code.
Bài tập được phân loại theo độ khó tăng dần, từ cơ bản (biến, vòng lặp, hàm) đến nâng cao (thuật toán, cấu trúc dữ liệu phức tạp, lập trình hướng đối tượng).
Phân loại mức độ bài tập
Cấp độ 1: Cơ bản
Dành cho người mới làm quen với Python. Tập trung vào cú pháp cơ bản: biến, kiểu dữ liệu, toán tử, câu lệnh điều kiện, vòng lặp đơn giản.
Cấp độ 2: Trung bình
Yêu cầu hiểu về hàm, list, dictionary, string manipulation và xử lý ngoại lệ cơ bản.
Cấp độ 3: Nâng cao
Đòi hỏi tư duy thuật toán, xử lý cấu trúc dữ liệu phức tạp, đệ quy và tối ưu hóa code. Sau khi hoàn thành các bài tập cơ bản và trung bình, bạn có thể thử sức với bài tập Python nâng cao để phát triển kỹ năng lập trình chuyên sâu hơn.
bai-tap-python-3
17 bài tập Python cấp độ 1
Bài 1: In “Hello, World!”
print("Hello, World!")
Bài 2: Nhập và in số
number = input("Nhập một số: ") print(f"Bạn đã nhập: {number}")
Bài 3: Kiểm tra số chẵn lẻ
number = int(input("Nhập một số: ")) if number % 2 == 0: print("Số chẵn") else: print("Số lẻ")
Bài 4: Tính tổng hai số
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) print(f"Tổng: {a + b}")
Bài 5: Tính hiệu hai số
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) print(f"Hiệu: {a - b}")
bai-tap-python-4
Bài 6: Tính tích hai số
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) print(f"Tích: {a b}")
Bài 7: Tính thương hai số
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) if b != 0: print(f"Thương: {a // b}") else: print("Không thể chia cho 0")
Bài 8: Tính phần dư
a = int(input("Nhập số thứ nhất: ")) b = int(input("Nhập số thứ hai: ")) print(f"Phần dư: {a % b}")
Bài 9: Kiểm tra số nguyên tố
def is_prime(n): if n < 2: return False for i in range(2, int(n0.5) + 1): if n % i == 0: return False return True number = int(input("Nhập một số: ")) print("Là số nguyên tố" if is_prime(number) else "Không phải số nguyên tố")
Bài 10: In số nguyên tố nhỏ hơn 100
for num in range(2, 100): if all(num % i != 0 for i in range(2, int(num0.5) + 1)): print(num, end=" ")
Bài 11: In bảng cửu chương
for i in range(1, 10): for j in range(1, 10): print(f"{i} x {j} = {ij}") print()
Bài 12: Tính giai thừa
def factorial(n): return 1 if n == 0 else n factorial(n - 1) number = int(input("Nhập một số: ")) print(f"Giai thừa: {factorial(number)}")
Bài 13: Nhập tên và in chào
name = input("Nhập tên của bạn: ") print(f"Xin chào, {name}!")
Bài 14: Tính tổng hai số thực
a = float(input("Nhập số thứ nhất: ")) b = float(input("Nhập số thứ hai: ")) print(f"Tổng: {a + b}")
Bài 15: So sánh hai số
a = float(input("Nhập số thứ nhất: ")) b = float(input("Nhập số thứ hai: ")) if a > b: print(f"{a} lớn hơn {b}") elif a < b: print(f"{a} nhỏ hơn {b}") else: print(f"{a} bằng {b}")
Bài 16: Tìm số chẵn đầu tiên trong list
def find_first_even(numbers): for num in numbers: if num % 2 == 0: return num return None numbers = [1, 3, 5, 8, 9, 10] result = find_first_even(numbers) print(f"Số chẵn đầu tiên: {result}" if result else "Không có số chẵn")
Bài 17: Tìm số lớn nhất trong list
numbers = [3, 7, 2, 9, 1, 5] print(f"Số lớn nhất: {max(numbers)}")
11 bài tập Python cấp độ 2
Bài 1: Tính tổng số chẵn từ 1 đến n
def sum_even(n): return sum(i for i in range(2, n+1, 2)) n = int(input("Nhập n: ")) print(f"Tổng số chẵn: {sum_even(n)}")
Bài 2: Kiểm tra số nguyên tố (tối ưu)
def is_prime(n): if n < 2: return False if n == 2: return True if n % 2 == 0: return False for i in range(3, int(n0.5) + 1, 2): if n % i == 0: return False return True number = int(input("Nhập số: ")) print("Là số nguyên tố" if is_prime(number) else "Không phải số nguyên tố")
Bài 3: Chuyển đổi nhiệt độ
def convert_temp(): choice = input("1. C sang Fn2. F sang CnChọn: ") if choice == '1': c = float(input("Nhập độ C: ")) print(f"{c}°C = {c 9/5 + 32}°F") elif choice == '2': f = float(input("Nhập độ F: ")) print(f"{f}°F = {(f - 32) 5/9}°C") convert_temp()
bai-tap-python-5
Bài 4: Xoay ma trận 90 độ
def rotate_matrix(matrix): return [[matrix[j][i] for j in range(len(matrix)-1, -1, -1)] for i in range(len(matrix[0]))] matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] rotated = rotate_matrix(matrix) for row in rotated: print(row)
Bài 5: Kiểm tra chuỗi con
text = "Python là ngôn ngữ tuyệt vời" substring = "ngôn ngữ" print(f"'{substring}' {'có' if substring in text else 'không'} trong chuỗi")
Bài 6: Tìm số lớn thứ hai
def second_largest(numbers): unique = list(set(numbers)) unique.sort(reverse=True) return unique[1] if len(unique) > 1 else None numbers = [5, 3, 9, 1, 7, 6] print(f"Số lớn thứ hai: {second_largest(numbers)}")
Bài 7: Đảo ngược chuỗi
text = "Hello, World!" print(f"Chuỗi đảo ngược: {text[::-1]}")
Bài 8: Đếm ký tự trong chuỗi
text = "Hello, World!" char_count = {} for char in text: char_count[char] = char_count.get(char, 0) + 1 for char, count in char_count.items(): print(f"'{char}': {count} lần")
Bài 9: Tính giai thừa (đệ quy)
def factorial(n): return 1 if n <= 1 else n factorial(n - 1) n = int(input("Nhập số: ")) print(f"Giai thừa của {n}: {factorial(n)}")
Bài 10: Tìm cặp số có tổng bằng target
def find_pairs(arr, target): seen = set() pairs = [] for num in arr: complement = target - num if complement in seen: pairs.append((complement, num)) seen.add(num) return pairs numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] target = 10 print(f"Các cặp có tổng {target}: {find_pairs(numbers, target)}")
Bài 11: Xử lý ngoại lệ khi nhập số
try: number = int(input("Nhập một số: ")) print(f"Bạn đã nhập: {number}") except ValueError: print("Lỗi: Vui lòng nhập số nguyên hợp lệ")
4 bài tập Python cấp độ 3
Bài 1: Đếm số từ trong câu
def count_words(sentence): return len(sentence.split()) text = input("Nhập câu: ") print(f"Số từ: {count_words(text)}")
Bài 2: Tính tổng n số Fibonacci đầu tiên
def fibonacci_sum(n): if n <= 0: return 0 fib = [0, 1] while len(fib) < n: fib.append(fib[-1] + fib[-2]) return sum(fib[:n]) n = int(input("Nhập n: ")) print(f"Tổng {n} số Fibonacci đầu: {fibonacci_sum(n)}")
Bài 3: Kiểm tra chuỗi đối xứng
def is_palindrome(s): s = s.lower().replace(" ", "") return s == s[::-1] text = input("Nhập chuỗi: ") print("Là chuỗi đối xứng" if is_palindrome(text) else "Không phải chuỗi đối xứng")
bai-tap-python-6
Bài 4: Tìm số lớn nhất không vượt giới hạn
def find_max_within_limit(numbers, limit): valid = [n for n in numbers if n <= limit] return max(valid) if valid else None numbers = [10, 25, 15, 30, 5, 20] limit = 25 result = find_max_within_limit(numbers, limit) print(f"Số lớn nhất ≤ {limit}: {result}" if result else "Không có số thỏa mãn")
Các bài tập Python cho người mới bắt đầu này giúp bạn xây dựng nền tảng vững chắc. Hãy thực hành đều đặn, thử nghiệm với các biến thể và đọc code của người khác để nâng cao kỹ năng lập trình. Bạn cũng có thể tải về bài tập Python có lời giải PDF để thực hành thêm với hơn 100 bài tập đa dạng.
Cập nhật lần cuối 15/03/2026 by Hiếu IT
