Xem thêm

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

Huy Erick
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? Hãy bỏ qua những lo ngại ấy vì, qua bài viết dưới đây, tôi...

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? Hãy bỏ qua những lo ngại ấy vì, qua bài viết dưới đây, tôi sẽ giới thiệu bạn hơn một số bài tập Python có lời giải chi tiết mà bạn có thể tham khảo và luyện tập để nâng cao trình độ của mình.

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.

bai-tap-python-1

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:

  • 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.

  • 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.

  • 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.

bai-tap-python-2

Cấu trúc bài tập Python có thể được chia thành các cấp độ khác nhau, từ cơ bản đến nâng cao. Các bài tập cấp độ cơ bản thường tập trung vào các khái niệm lập trình cơ bản , như biến, toán tử, cấu trúc dữ liệu và vòng lặp. Các bài tập cấp độ nâng cao thường tập trung vào các khái niệm lập trình nâng cao, như lớp, kế thừa, đa hình, thuật toán và cấu trúc dữ liệu phức tạp.

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.

bai-tap-python-3

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)

bai-tap-python-4

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: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] target_sum = 10 result_pairs = find_pairs_with_sum(arr, 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.")

Bài 21: Viết một chương trình để đếm số từ trong một câu nhập từ người dùng.

def dem_so_tu():   # Nhập câu từ người dùng   cau_nhap = input("Nhập một câu: ")   # Sử dụng split() để tách các từ trong câu   tu_ket_qua = cau_nhap.split()   # Đếm số từ trong câu   so_tu = len(tu_ket_qua)   # In kết quả   print("Số từ trong câu là:", so_tu)  # Gọi hàm để thực thi chương trình dem_so_tu()

Bài 22: Viết một chương trình tính tổng n số đầu tiên trong dãy Fibonacci.

def fibonacci_sum(n):   if n <= 0:     return "Vui lòng nhập một số nguyên dương."   fib_sequence = [0, 1]   while len(fib_sequence) < n:     fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])   sum_fibonacci = sum(fib_sequence[:n])   return f"Tổng của {n} số đầu tiên trong dãy Fibonacci là: {sum_fibonacci}"  # Nhập số nguyên dương n từ người dùng n = int(input("Nhập số nguyên dương n: ")) result = fibonacci_sum(n) print(result)

Bài 23: Viết một chương trình để kiểm tra xem một chuỗi có phải là chuỗi đối xứng hay không.

def is_palindrome(s):   # Chuyển đổi chuỗi thành chữ thường và loại bỏ các khoảng trắng   s = s.lower().replace(" ", "")   # So sánh chuỗi với chuỗi nghịch đảo của nó   return s == s[::-1]  # Nhập chuỗi từ người dùng input_string = input("Nhập chuỗi cần kiểm tra: ") # Gọi hàm kiểm tra và in kết quả if is_palindrome(input_string):   print("Chuỗi là chuỗi đối xứng.") else:   print("Chuỗi không phải là chuỗi đối xứng.")

Tổng kết Như vậy, thông qua bài viết trên bạn đã có thể biết hơn 30+ bài tập Python từ level 1 đến level 3 một cách nhanh chóng và chính xác. Hy vọng bài viết này đã cung cấp một số bài tập bổ ích để bạn rèn luyện và nâng cao kỹ năng coding của mình.

1