Hơn 30+ bài tập Python có lời giải (code mẫu)

Bạn đang theo đuổi ngành học lập trình thông tin nhưng đang gặp khó khăn khi học ngôn ngữ code Python?

Ngôn ngữ Python là gì?

Trước khi tìm hiểu về bài tập Python hãy cùng tôi khái quát lại khái niệm ngôn ngữ Python là gì. Python là một ngôn ngữ lập trình bậc cao, mã nguồn mở, đa nền tảng, được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python được Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Ngôn ngữ Python được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm:

  • Phát triển web: Python là một ngôn ngữ lập trình phổ biến cho phát triển web back-end. Nó được sử dụng để xây dựng các ứng dụng web động, hiệu quả và bảo mật.

  • Phát triển phần mềm: Python là một ngôn ngữ lập trình linh hoạt có thể được sử dụng để phát triển nhiều loại ứng dụng phần mềm, bao gồm phần mềm doanh nghiệp, phần mềm di động và trò chơi điện tử.

  • Khoa học dữ liệu và máy học: Python là một ngôn ngữ lập trình phổ biến cho khoa học dữ liệu và máy học. Nó được sử dụng để thu thập, phân tích và xử lý dữ liệu, cũng như xây dựng các mô hình máy học.

  • Các ứng dụng khác: Python cũng được sử dụng cho các ứng dụng khác, bao gồm hệ thống nhúng, tự động hóa và scripting.

Cấu trúc của bài tập Python cơ bản

Cấu trúc bài tập Python thường bao gồm các phần sau:

  1. Yêu cầu: Phần này nêu rõ yêu cầu của bài tập, bao gồm mục đích, đầu vào, đầu ra và các ràng buộc.

  2. Gợi ý: Phần này cung cấp một số gợi ý hoặc hướng dẫn để giải quyết bài tập.

  3. Lời giải: Phần này cung cấp lời giải đầy đủ cho bài tập, bao gồm mã Python và các giải thích.

Ngoài ra, một số bài tập có thể có thêm các phần sau:

  • Bài kiểm tra: Phần này cung cấp các trường hợp kiểm tra để kiểm tra tính chính xác của lời giải.

  • Tài liệu tham khảo: Phần này cung cấp các tài liệu tham khảo bổ sung để giúp học sinh giải quyết bài tập.

Image
Hình ảnh minh họa về các bài tập Python

Các mức độ có trong bài tập Python

Các mức độ trong bài tập Python thường được chia thành 3 cấp độ chính:

  1. Cấp độ 1: Dành cho người mới bắt đầu, những người đã học qua những kiến thức cơ bản về Python như biến, toán tử, vòng lặp, hàm,… Các bài tập cấp độ này thường yêu cầu người học giải quyết các vấn đề đơn giản, không yêu cầu sử dụng nhiều kiến thức nâng cao.

  2. Cấp độ 2: Dành cho người đã có nền tảng lập trình cơ bản, có thể sử dụng các cấu trúc dữ liệu và thuật toán cơ bản. Các bài tập cấp độ này thường yêu cầu người học giải quyết các vấn đề phức tạp hơn, đòi hỏi sử dụng nhiều kiến thức nâng cao hơn.

  3. Cấp độ 3: Dành cho người đã có kinh nghiệm lập trình, có thể sử dụng các cấu trúc dữ liệu và thuật toán nâng cao. Các bài tập cấp độ này thường yêu cầu người học giải quyết các vấn đề thực tế, đòi hỏi khả năng sáng tạo và tư duy logic cao.

Ngoài ra, các bài tập Python cũng có thể được chia thành các mức độ khác dựa trên các tiêu chí khác như:

  • Mức độ khó: Các bài tập có thể được chia thành các mức độ dễ, trung bình, khó, rất khó.

  • Mức độ chuyên sâu: Các bài tập có thể được chia thành các mức độ cơ bản, nâng cao, chuyên sâu.

  • Mức độ thực tế: Các bài tập có thể được chia thành các mức độ lý thuyết, thực tế.

Việc phân chia các bài luyện tập Python thành các mức độ giúp người học có thể lựa chọn các bài tập phù hợp với trình độ của mình. Việc luyện tập các bài tập ở các mức độ khác nhau sẽ giúp người học nâng cao kỹ năng lập trình Python một cách hiệu quả.

10+ bài tập Python cấp độ 1 dành cho người mới bắt đầu

Những bài tập này nhằm giúp người mới bắt đầu hiểu về cú pháp cơ bản và các khái niệm căn bản trong ngôn ngữ lập trình Python. Dưới đây là 10+ bài tập Python cấp độ 1 dành cho người mới bắt đầu mà bạn có thể tham khảo ngay:

Bài 1: Viết chương trình in ra “Hello, world!”.

print("Hello, world!")

Bài 2: Nhập một số từ bàn phím và in ra số đó.

number = input("Nhập một số: ")
print(number)

Bài 3: Viết chương trình kiểm tra xem một số là chẵn hay lẻ.

number = int(input("Nhập một số: "))
if number % 2 == 0:
    print("Số chẵn")
else:
    print("Số lẻ")

Bài 4: Viết chương trình tính tổng của hai số.

number1 = int(input("Nhập số thứ nhất: "))
number2 = int(input("Nhập số thứ hai: "))
sum = number1 + number2
print("Tổng hai số là:", sum)

Bài 5: Viết chương trình tính hiệu của hai số.

number1 = int(input("Nhập số thứ nhất: "))
number2 = int(input("Nhập số thứ hai: "))
difference = number1 - number2
print("Hiệu hai số là:", difference)

Bài 6: Viết chương trình tính tích của hai số.

number1 = int(input("Nhập số thứ nhất: "))
number2 = int(input("Nhập số thứ hai: "))
product = number1 * number2
print("Tích hai số là:", product)

Bài 7: Viết chương trình tính thương của hai số.

number1 = int(input("Nhập số thứ nhất: "))
number2 = int(input("Nhập số thứ hai: "))
quotient = number1 // number2
print("Thương hai số là:", quotient)

Bài 8: Viết chương trình tính phần dư của hai số.

number1 = int(input("Nhập số thứ nhất: "))
number2 = int(input("Nhập số thứ hai: "))
remainder = number1 % number2
print("Phần dư của hai số là:", remainder)

Bài 9: Viết chương trình kiểm tra xem một số có phải là số nguyên tố hay không.

number = int(input("Nhập một số: "))
is_prime = True
for i in range(2, number):
    if number % i == 0:
        is_prime = False
        break
if is_prime:
    print("Số là số nguyên tố")
else:
    print("Số không phải là số nguyên tố")

Bài 10: Viết chương trình in ra tất cả các số nguyên tố nhỏ hơn 100.

for i in range(2, 100):
    is_prime = True
    for j in range(2, i):
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(i)

Bài 11: Viết chương trình in ra bảng cửu chương.

for i in range(1, 10):
    for j in range(1, 10):
        print(i, "x", j, "=", i * j)

Bài 12: Viết chương trình tính giai thừa của một số.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

number = int(input("Nhập một số: "))
factorial_value = factorial(number)
print("Giai thừa của", number, "là:", factorial_value)

Bài 13: Nhập tên và in ra màn hình.

# Nhập tên từ người dùng
ten_nguoi_dung = input("Nhập tên của bạn: ")
# In tên ra màn hình
print("Xin chào,", ten_nguoi_dung)

Bài 14: Tính tổng hai số.

# Nhập hai số từ người dùng
so1 = float(input("Nhập số thứ nhất: "))
so2 = float(input("Nhập số thứ hai: "))
# Tính tổng hai số
tong = so1 + so2
# Hiển thị kết quả
print(f"Tổng của {so1} và {so2} là: {tong}")

Bài 15: So sánh hai số.

def so_sanh_hai_so(a, b):
    if a > b:
        return f"{a} lớn hơn {b}"
    elif a < b:
        return f"{a} nhỏ hơn {b}"
    else:
        return f"{a} bằng {b}"

# Sử dụng hàm so_sanh_hai_so
so1 = float(input("Nhập số thứ nhất: "))
so2 = float(input("Nhập số thứ hai: "))
ket_qua = so_sanh_hai_so(so1, so2)
print(ket_qua)

Bài 16: Tìm số chẵn đầu tiên trong một danh sách.

def tim_so_chan_dau_tien(danh_sach):
    for so in danh_sach:
        if so % 2 == 0:
            return so
    return None # Trả về None nếu không tìm thấy số chẵn nào trong danh sách

# Ví dụ sử dụng
danh_sach_so = [1, 3, 5, 8, 9, 10, 15]
so_chan_dau_tien = tim_so_chan_dau_tien(danh_sach_so)
if so_chan_dau_tien is not None:
    print(f"Số chẵn đầu tiên trong danh sách là: {so_chan_dau_tien}")
else:
    print("Không có số chẵn nào trong danh sách.")

Bài 17: Tìm số lớn nhất trong một danh sách.

def tim_so_lon_nhat(danh_sach):
    if not danh_sach:
        return None # Trả về None nếu danh sách rỗng
    so_lon_nhat = danh_sach[0] # Giả sử số đầu tiên là lớn nhất
    for so in danh_sach:
        if so > so_lon_nhat:
            so_lon_nhat = so
    return so_lon_nhat

# Ví dụ sử dụng
danh_sach_so = [5, 3, 9, 1, 7, 6]
ket_qua = tim_so_lon_nhat(danh_sach_so)
print("Số lớn nhất là:", ket_qua)

Bài 17: In ra các số nguyên tố từ 2 đến 100.

def is_prime(num):
    """Kiểm tra xem một số có phải là số nguyên tố hay không."""
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

def print_primes():
    """In ra các số nguyên tố từ 2 đến 100."""
    for num in range(2, 101):
        if is_prime(num):
            print(num)

# Gọi hàm để in ra các số nguyên tố
print_primes()

Bài 18: Viết một hàm để tính giai thừa của một số nguyên dương.

def tinh_giai_thua(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * tinh_giai_thua(n-1)

# Nhập số nguyên dương từ người dùng
so_nguyen = int(input("Nhập một số nguyên dương: "))
# Kiểm tra nếu số nhập vào là âm, yêu cầu nhập lại
while so_nguyen < 0:
    so_nguyen = int(input("Vui lòng nhập một số nguyên dương: "))
# Gọi hàm và in kết quả
ket_qua = tinh_giai_thua(so_nguyen)
print(f"Giai thừa của {so_nguyen} là {ket_qua}")

Bài 19: Viết một hàm để phân tích một mảng số nguyên và tìm các cặp số có tổng bằng một số được chỉ định.

def find_pairs_with_sum(arr, target_sum):
    pairs = []
    seen_numbers = set()
    for num in arr:
        complement = target_sum - num
        if complement in seen_numbers:
            pairs.append((num, complement))
        seen_numbers.add(num)
    return pairs

# Example usage:
array_of_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target_sum = 10
result_pairs = find_pairs_with_sum(array_of_numbers, target_sum)
if result_pairs:
    print(f"Các cặp số có tổng bằng {target_sum}: {result_pairs}")
else:
    print(f"Không có cặp số nào có tổng bằng {target_sum}")

Bài 20: Viết một chương trình sử dụng xử lý ngoại lệ để xử lý trường hợp nhập vào không phải là số.

try:
    # Nhập một số từ người dùng
    input_number = input("Nhập vào một số: ")
    # Chuyển đổi chuỗi nhập thành số nguyên
    number = int(input_number)
    # In ra số vừa nhập
    print("Số bạn vừa nhập là:", number)
except ValueError:
    # Xử lý ngoại lệ nếu người dùng nhập không phải là số
    print("Lỗi: Bạn phải nhập vào một số nguyên.")

Tôi hy vọng rằng các bài tập này sẽ giúp bạn nâng cao kỹ năng lập trình Python của mình. Hãy thử giải quyết từng bài tập và rèn luyện khả năng giải quyết vấn đề của mình.

FEATURED TOPIC