100 bài tập Python có lời giải từ cơ bản đến nâng cao 2025 – 2026

1. Lợi ích của việc học 100 bài code Python

  • Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay.
  • Được sử dụng rộng rãi trong nhiều lĩnh vực như trí tuệ nhân tạo , khoa học dữ liệu , phát triển web , tự động hóa và nhiều ứng dụng khác.
  • Việc học 100 bài code Python mang lại nhiều lợi ích quan trọng, giúp bạn nâng cao kỹ năng lập trình.
  • Mở rộng cơ hội nghề nghiệp và cải thiện khả năng tư duy logic .
  • Rồi hãy xem các ngay 100 bài tập Python có lời giải phía dưới mời học để nâng cao khả năng lập trình của mình.

2. Củng cố nền tảng lập trình vững chắc ️

  • Khi bạn thực hành 100 bài code Python, bạn sẽ tiếp xúc với nhiều khái niệm quan trọng như biến , vòng lặp , hàm , danh sách , tuple, từ điển và nhiều cấu trúc dữ liệu khác.
  • Việc lặp lại và áp dụng kiến thức vào thực tế giúp bạn ghi nhớ lâu hơn và sử dụng chúng một cách linh hoạt.
  • Ngoài ra, bạn sẽ có cơ hội tìm hiểu cách tối ưu hóa mã nguồn, giúp chương trình chạy nhanh hơn ⚡ và hiệu quả hơn.
  • Hơn nữa, thông qua việc thực hành, bạn sẽ quen dần với phong cách lập trình chuẩn,
  • Tuân thủ quy tắc viết code rõ ràng, giúp cho việc đọc hiểu và bảo trì mã nguồn sau này trở nên dễ dàng hơn.

3. Nâng cao kỹ năng giải quyết vấn đề

  • Lập trình không chỉ đơn thuần là viết code mà còn là quá trình giải quyết vấn đề.
  • Khi luyện tập với 100 bài tập Python, bạn sẽ gặp nhiều dạng bài khác nhau từ cơ bản đến nâng cao, giúp bạn rèn luyện tư duy logic , kỹ năng phân tích và cách tiếp cận vấn đề hiệu quả hơn.
  • Bạn cũng sẽ học cách sử dụng các thuật toán và cấu trúc dữ liệu một cách tối ưu.
  • Điều này đặc biệt quan trọng khi bạn làm việc với những bài toán phức tạp, yêu cầu tính toán hiệu quả, tối ưu bộ nhớ và tốc độ xử lý .

4. Cải thiện khả năng đọc và viết code ✍️

  • Thực hành thường xuyên giúp bạn quen thuộc với cú pháp và cách tổ chức mã nguồn một cách rõ ràng, tối ưu.
  • Điều này giúp bạn viết code dễ đọc , dễ bảo trì và phát triển hơn trong các dự án thực tế.
  • Bên cạnh đó, khi làm nhiều bài tập, bạn sẽ học được cách viết code sạch , tránh lỗi phổ biến,
  • Đồng thời sử dụng các công cụ hỗ trợ như trình gỡ lỗi (debugger) ️ hoặc kiểm tra mã nguồn (linting tools) để đảm bảo chất lượng code.

5. Chuẩn bị tốt cho phỏng vấn lập trình

  • Trong các buổi phỏng vấn lập trình, nhà tuyển dụng thường kiểm tra khả năng giải quyết bài toán bằng Python.
  • Nếu bạn đã hoàn thành 100 bài code Python, bạn sẽ tự tin hơn khi đối mặt với các câu hỏi thuật toán, tối ưu code và tư duy logic.
  • Ngoài ra, nhiều công ty công nghệ lớn yêu cầu ứng viên phải có khả năng hiểu và tối ưu thuật toán.
  • Khi bạn đã quen thuộc với các dạng bài tập khác nhau,
  • Bạn sẽ dễ dàng áp dụng kiến thức để đưa ra giải pháp hiệu quả trong thời gian ngắn ⏳.

6. Mở rộng kiến thức về các thư viện phổ biến

  • Thông qua việc giải quyết nhiều bài tập, bạn có cơ hội làm quen với các thư viện phổ biến của Python như NumPy , Pandas , Matplotlib , và nhiều công cụ hỗ trợ khác.
  • Điều này giúp bạn có lợi thế khi ứng dụng Python vào khoa học dữ liệu, trí tuệ nhân tạo hoặc phát triển phần mềm.
  • Ngoài ra, bạn cũng có thể tiếp cận với các thư viện phục vụ mục đích khác như Flask hoặc Django để phát triển web , Selenium để tự động hóa quy trình , hoặc TensorFlow để xây dựng mô hình học máy .

7. Tạo tiền đề để học các lĩnh vực nâng cao

  • Sau khi thành thạo 100 bài tập Python, bạn sẽ có một nền tảng vững chắc để bước vào các lĩnh vực nâng cao hơn như Machine Learning , Web Development , hoặc Data Science .
  • Những kiến thức tích lũy từ các bài tập trước sẽ giúp bạn tiếp cận các lĩnh vực này dễ dàng hơn.
  • Bạn cũng sẽ có cơ hội tham gia các dự án mã nguồn mở, làm việc nhóm hoặc xây dựng các ứng dụng thực tế,
  • Từ đó nâng cao kỹ năng làm việc và mở rộng mối quan hệ trong cộng đồng lập trình viên.

8. Tăng cơ hội nghề nghiệp và thu nhập

  • Python đang là một trong những ngôn ngữ có nhu cầu tuyển dụng cao trên thị trường.
  • Khi bạn có khả năng lập trình tốt, cơ hội tìm được công việc lương cao hoặc làm freelancer cũng trở nên dễ dàng hơn.
  • Nhiều công ty lớn như Google, Facebook, Amazon và Microsoft đều sử dụng Python cho nhiều dự án quan trọng.
  • Do đó, nếu bạn có kỹ năng lập trình tốt, bạn có thể ứng tuyển vào các vị trí hấp dẫn và có mức lương cạnh tranh .

9. Phát triển tư duy sáng tạo

  • Việc luyện tập 100 bài code Python không chỉ giúp bạn nâng cao kỹ năng lập trình mà còn khuyến khích bạn sáng tạo trong cách giải quyết vấn đề.
  • Khi đối mặt với một thử thách, bạn sẽ học cách nghĩ linh hoạt, tìm kiếm nhiều cách tiếp cận khác nhau và tối ưu hóa giải pháp.
  • Hơn nữa, Python là một ngôn ngữ có cộng đồng rất lớn và nhiều nguồn tài nguyên học tập ,
  • Bạn có thể dễ dàng tìm hiểu các kỹ thuật mới, cập nhật xu hướng công nghệ và tiếp tục phát triển bản thân.

10. Kết luận 100 bài tập Python có lời giải ✅

  • Việc học 100 bài code Python không chỉ giúp bạn nâng cao kỹ năng lập trình mà còn mở ra nhiều cơ hội phát triển nghề nghiệp trong tương lai.
  • Hãy bắt đầu ngay hôm nay, kiên trì thực hành và chinh phục những thử thách để trở thành một lập trình viên giỏi!
  • Bạn đã sẵn sàng thử thách với 100 bài code Python chưa?
  • Hãy bắt tay vào học ngay và trải nghiệm những lợi ích tuyệt vời mà nó mang lại!

11. Danh sách 100 bài tập Python có lời giải mới nhất 2025 – 2026:

Phần 1: Các bài tập dễ và cơ bản làm được các bài này các bạn sẽ được hiểu hơn về python:

  1. Bài 1: Tính Chu Vi Và Diện Tích Hình Vuông Bằng Python mới nhất
  2. Bài 2: Học Python – Tính Chu Vi Và Diện Tích Hình Tròn Bằng Python
  3. Bài 3: Học Python – Tính Chu Vi Và Diện Tích Hình Chữ Nhật Bằng Python
  4. Bài 4: Học Python – Tính Tổng Và Tích Hai Số Nguyên Bằng Python
  5. Bài 5: Học Python – Tính Trung Bình Cộng Của 3 Số Nguyên Bằng Python
  6. Bài 6: Học Python – Tính Chu Vi Và Diện Tích Tam Giác Bằng Python
  7. Bài 7: Học Python Tính Bán Kính R của Đường Tròn Ngoại Tiếp Tam Giác bằng Python
  8. Bài 8  : Học Python – Tính Diện Tích Tam Giác bằng Python
  9. Bài 9 : Tính Điểm Trung Bình bằng Python
  10. Bài 10: Học Python – Chia Táo bằng Python

Phần 2: Sau khi giải được các bài tập này các em sẽ hiểu hơn về chia phần nguyên và phần dư quan trọng ra sao

  1. Bài 11: Tìm 2 Chữ Số Đầu và 2 Chữ Số Cuối Bằng Python
  2. Bài 12: Tìm Số Lớn Nhất Trong 3 Số Bằng Python
  3. Bài 13: Cộng, Trừ, Nhân, Chia bằng Python làm được kinh nghiệm tăng cao
  4. Bài 14: Xếp loại học sinh mới nhất năm 2025 – 2026
  5. Bài 15: Cộng, Trừ, Căn Bậc Hai bằng Python mới nhất 2025 – 2026

  6. Bài 16: Tính Số Ngày Của Tháng Bằng Python
  7. Bài 17: Tính Số Nút Của Biển Số Xe Bằng Python
  8. Bài 18: Đổi Tiền Bằng Python
  9. Bài 19:  Tính Tiền Taxi Bằng Python
  10. Bài 20:  Tính Tiền Điện Bằng Python

Phần 3: Học được các bài tập để đạt điểm tối đa trong kỳ thi cấp huyện

  1. Bài 21: Tìm Những Số Chia Hết Cho 3 bằng Python mới nhất
  2. Bài 22: Đếm Số Lượng Số Chia Hết Cho 3 Bằng Python
  3. Bài 23 : Tính Tổng Những Số Chẵn Bằng Python
  4. Bài 24 Tính Tổng Những Số Chia Hết Cho 3 Hoặc 5 Bằng Python
  5. Bài 25:  Đếm Số Ước Của Số Nguyên n Bằng Python
  6. Bài 26 – Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python
  7. Bài 27: Kiểm tra số nguyên tố bằng Python (2 cách tối ưu)

  8. Bài 28: Tính Tổng Các Số Nguyên Từ m Đến n Bằng Python
  9. Bài 29: Đếm Số Chia Hết Cho 3 Từ m Đến n Bằng Python
  10. Bài 30 Đếm Số Chia Hết Cho 3 Hoặc 5 Và Tính Tổng Các Số Chẵn Bằng Python

Phần 4: Biết hơn về các số nguyên tố và số chính phương

  1. Bài 31: Đếm Số Nguyên Tố Trong Khoảng Từ m Đến n Bằng Python
  2. Bài 32 : In Các Số Nguyên Tố Từ m Đến n Bằng Python
  3. Bài 33: Tính Trung Bình Cộng Các Số Nguyên Tố Từ m Đến n Bằng Python
  4. Bài 34: Tìm Ước Chung Lớn Nhất (UCLN) của Hai Số Nguyên Dương a, b bằng Python
  5. Bài 35: Rút Gọn Phân Số Bằng Python
  6. Bài 36: In ra k số nguyên tố đầu tiên bằng Python
  7. Bài 37: Kiểm Tra Số Chính Phương Bằng Python
  8. Bài 38: In ra k số chính phương đầu tiên bằng Python
  9. Bài 39: Tính tổng các phần tử trong mảng bằng Python
  10. Bài 40: Đếm số dương trong mảng bằng Python?

Phần 5: Biết về ứng dụng tuyệt vời của mảng như thế nào?

  1. Bài 41: Đếm số chẵn trong mảng bằng Python
  2. Bài 42: Tính tổng các phần tử ở vị trí chẵn trong mảng bằng Python
  3. Bài 43: Tính tổng các phần tử có giá trị chẵn trong mảng bằng Python
  4. Bài 44: Tìm số x trong mảng bằng Python
  5. Bài 45 : Đếm và in dãy số dương, số âm trong mảng bằng Python
  6. Bài 46: In ra những số chia hết cho 5 và tổng của chúng trong mảng bằng Python
  7. Bài 47 : Tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của phần tử đó bằng Python
  8. Bài 48: Tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của phần tử đó bằng Python
  9. Bài 49: Sắp xếp mảng theo thứ tự tăng dần bằng Python
  10. Bài 50: In ra các số nguyên tố trong mảng và tính tổng của chúng bằng Python

Phần 6: Hiểu và biết hơn về cách sử dụng mảng nâng cao hơn

  1. Bài 51 : Tính trung bình các số nguyên tố trong mảng bằng Python
  2. Bài 52: Tìm số âm lớn nhất trong mảng bằng Python
  3. Bài 53: Tìm số nguyên lớn nhì trong mảng bằng Python
  4. Bài 54: Tìm số nguyên nhỏ thứ 3 trong mảng bằng Python
  5. Bài 55: Đếm số lượng số nguyên khác nhau trong mảng bằng Python
  6. Bài 56: Đếm số lần xuất hiện của từng số trong mảng bằng Python
  7. Bài 57: Tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng Python
  8. Bài 58 Tính trung bình cộng các số chính phương trong mảng bằng Python
  9. Bài 59: In ra câu “Chao HoTen” bằng Python
  10. Bài 60: Viết xâu theo thứ tự ngược lại bằng Python

Phần 7: Giải được sẽ hiểu về hơn về cách sử dụng xâu chuỗi

  1. Bài 61: In xâu với mỗi ký tự trên 1 dòng bằng Python
  2. Bài 62: Xoá bỏ các dấu cách trong chuỗi bằng Python
  3. Bài 63: Kiểm tra xâu đối xứng bằng Python
  4. Bài 64: Xoá các khoảng trắng thừa ở đầu câu bằng Python
  5. Bài 65: Xoá các khoảng trắng thừa ở cuối câu bằng Python
  6. Bài 66 : Xoá các khoảng trắng thừa ở giữa câu bằng Python
  7. Bài 67: Đếm số từ trong câu bằng Python
  8. Bài 68: Đổi ký tự đầu từ thành chữ in hoa bằng Python
  9. Bài 69: Tìm kiếm và thay thế trong chuỗi bằng Python
  10. Bài 70: Đổi tất cả ký tự trong một chuỗi thành ký tự in hoa bằng Python

Phần 8: Học được các bài này sẽ nâng cao khả năng lập trình chuỗi hiệu quả hơn

  1. Bài 71: Đổi tất cả ký tự trong một chuỗi thành ký tự thường bằng Python
  2. Bài 72: Đảo ngược các từ trong câu bằng Python
  3. Bài 73: Đảo ngược các ký tự trong từng từ bằng Python
  4. Bài 74: Đếm số lần xuất hiện chuỗi c trong xâu bằng Python
  5. Bài 75: Đếm số ký tự khác nhau trong xâu bằng Python
  6. Bài 76: Mỗi ký tự xuất hiện bao nhiêu lần trong xâu bằng Python
  7. Bài 77: Tìm ký tự xuất hiện nhiều lần nhất trong xâu bằng Python
  8. Bài 78: Tìm vị trí đầu tiên mà ký tự x xuất hiện trong xâu bằng Python
  9. Bài 79: Tìm vị trí cuối cùng mà ký tự x xuất hiện trong xâu bằng Python
  10. Bài 80: Đếm ký tự in hoa trong xâu bằng Python

Phần 9: Hiểu về cách sử dụng hàm và cái hay của lập trình hướng đối tượng

  1. Bài 81: Đếm số ký tự thường trong xâu bằng Python
  2. Bài 82: Tìm tên của một người trong chuỗi họ và tên bằng Python
  3. Bài 83 Tìm họ và chữ lót của một người từ chuỗi họ và tên bằng Python
  4. Bài 84: Tính chu vi và diện tích của tam giác có sử dụng hàm trong Python
  5. Bài 85: Viết hàm kiểm tra chia hết cho 5 trong Python
  6. Bài 86: Viết hàm tìm Ước Chung Lớn Nhất (UCLN) trong Python
  7. Bài 87: Viết hàm tính giai thừa n! trong Python
  8. Bài 88: Viết hàm P(x, n) để tính giá trị x^n trong Python
  9. Bài 89: Vẽ hình chữ nhật bằng dấu * trong Python
  10. Bài 90: Sử dụng hàm lồng nhau trong Python

Phần 10: Giải được hiểu các bài tập nâng cao đậu kỳ thi cấp huyện chắc chắn

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

100 Học Python – Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Bài 100: Số Hoàn Hảo: Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Số hoàn hảo là một số nguyên dương bằng tổng các ước số thực sự của nó (không tính chính nó). Ví dụ, số 6 là số hoàn hảo vì:

Dưới đây là hai cách kiểm tra số hoàn hảo: một cách đơn giản dễ hiểu và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

1. Cách 1: Kiểm tra số hoàn hảo theo cách đơn giản

Duyệt tất cả các số nhỏ hơn số cần kiểm tra và tính tổng các ước số.

def so_hoan_hao_don_gian(n):
    tong_uoc = 0
    for i in range(1, n):
        if n % i == 0:
            tong_uoc += i
    return tong_uoc == n

# Ví dụ sử dụng
print(so_hoan_hao_don_gian(6))  # Kết quả: True
print(so_hoan_hao_don_gian(28)) # Kết quả: True

Ưu điểm:

  • Dễ hiểu, dễ cài đặt.

Nhược điểm:

  • Hiệu suất kém với số lớn (độ phức tạp O(n)).

2. Cách 2: Kiểm tra số hoàn hảo theo cách tối ưu

Thay vì duyệt tất cả các số từ 1 đến n-1, ta chỉ cần kiểm tra các ước số từ 1 đến và tính tổng cả cặp ước số.

def so_hoan_hao_toi_uu(n):
    if n < 2:
        return False
    tong_uoc = 1
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            tong_uoc += i
            if i != n // i:
                tong_uoc += n // i
    return tong_uoc == n

# Ví dụ sử dụng
print(so_hoan_hao_toi_uu(6))  # Kết quả: True
print(so_hoan_hao_toi_uu(28)) # Kết quả: True

Ưu điểm:

  • Hiệu suất cao hơn (độ phức tạp O(√n)).
  • Chạy nhanh hơn đáng kể với số lớn.

Nhược điểm:

  • Cần hiểu về ước số và cách tối ưu thuật toán.

3. So sánh hai phương pháp

Phương phápĐộ phức tạpTốc độ thực thiBộ nhớ sử dụng
Cách đơn giảnO(n)ChậmThấp
Cách tối ưuO(√n)Nhanh hơnThấp

Kết luận

Nếu bạn chỉ kiểm tra số nhỏ, cách đơn giản có thể đủ dùng. Nhưng với số lớn, cách tối ưu giúp tiết kiệm thời gian đáng kể. Bạn hãy thử chạy hai đoạn mã trên để tự kiểm chứng nhé!

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất

Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

Dãy Fibonacci là một dãy số bắt đầu từ 0 và 1, trong đó mỗi số tiếp theo là tổng của hai số trước đó. Cụ thể, công thức tổng quát như sau:

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

1. Cách 1: Tính Fibonacci bằng đệ quy

Đây là cách tiếp cận đơn giản và dễ hiểu nhưng không tối ưu về mặt hiệu suất.

def fibonacci_de_quy(n):
    if n <= 1:
        return n
    return fibonacci_de_quy(n-1) + fibonacci_de_quy(n-2)

# Ví dụ sử dụng
print(fibonacci_de_quy(10))  # Kết quả: 55

Ưu điểm:

  • Dễ hiểu, phù hợp cho người mới bắt đầu học thuật toán.

Nhược điểm:

  • Hiệu suất kém do có nhiều lần tính toán lặp lại (độ phức tạp O(2^n)).
  • Khi n lớn, chương trình chạy rất chậm.

2. Cách 2: Tính Fibonacci bằng phương pháp lặp (Dynamic Programming)

Sử dụng cách tiếp cận lập trình động giúp giảm số lần tính toán bằng cách lưu trữ kết quả trung gian.

def fibonacci_lap(n):
    if n <= 1:
        return n
    a, b = 0, 1
    for _ in range(2, n + 1):
        a, b = b, a + b
    return b

# Ví dụ sử dụng
print(fibonacci_lap(10))  # Kết quả: 55

Ưu điểm:

  • Hiệu suất cao hơn nhiều so với phương pháp đệ quy (độ phức tạp O(n)).
  • Ít tốn tài nguyên hơn, tránh tình trạng lặp lại tính toán không cần thiết.

Nhược điểm:

  • Cần sử dụng biến bổ sung để lưu trữ kết quả trung gian.
  • Không trực quan bằng phương pháp đệ quy.

3. So sánh hai phương pháp

Phương phápĐộ phức tạpTốc độ thực thiBộ nhớ sử dụng
Đệ quyO(2^n)ChậmCao
Lặp (Dynamic)O(n)NhanhThấp

Tóm lại, nếu cần tính Fibonacci cho giá trị nhỏ thì đệ quy có thể là một cách tiếp cận đơn giản. Tuy nhiên, khi làm việc với số lớn, sử dụng phương pháp lặp sẽ giúp tối ưu hiệu suất và tiết kiệm tài nguyên.

Bạn thích phương pháp nào hơn? Hãy thử chạy hai đoạn mã trên và tự kiểm chứng nhé!

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

98 Học Python – Viết 2 chương trình con tìm Max, Min

Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min

Giới thiệu

Trong bài viết này, chúng ta sẽ viết hai chương trình con trong Python để tìm giá trị lớn nhất (Max) và nhỏ nhất (Min) trong một mảng, đồng thời xác định vị trí của chúng. Chúng ta sẽ triển khai theo hai cách: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tìm Max và Min trong mảng.
  2. Viết một hàm tìm vị trí của Max và Min trong mảng.
  3. Viết một phiên bản tối ưu hơn bằng cách sử dụng thư viện có sẵn.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tim_max_min(mang):

    max_value = mang[0]

    min_value = mang[0]

    for so in mang:

        if so > max_value:

            max_value = so

        if so < min_value:

            min_value = so

    return max_value, min_value




def tim_vi_tri_max_min(mang):

    max_value, min_value = tim_max_min(mang)

    vi_tri_max = mang.index(max_value)

    vi_tri_min = mang.index(min_value)

    return vi_tri_max, vi_tri_min




mang_so = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

max_val, min_val = tim_max_min(mang_so)

vi_tri_max, vi_tri_min = tim_vi_tri_max_min(mang_so)

print(f"Max: {max_val}, Min: {min_val}")

print(f"Vị trí Max: {vi_tri_max}, Vị trí Min: {vi_tri_min}")

 

Cách tối ưu

 

def tim_max_min_toi_uu(mang):

    return max(mang), min(mang)




def tim_vi_tri_max_min_toi_uu(mang):

    max_value, min_value = tim_max_min_toi_uu(mang)

    vi_tri_max = mang.index(max_value)

    vi_tri_min = mang.index(min_value)

    return vi_tri_max, vi_tri_min




mang_so = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

max_val, min_val = tim_max_min_toi_uu(mang_so)

vi_tri_max, vi_tri_min = tim_vi_tri_max_min_toi_uu(mang_so)

print(f"Max: {max_val}, Min: {min_val}")

print(f"Vị trí Max: {vi_tri_max}, Vị trí Min: {vi_tri_min}")

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, không cần thư việnHiệu suất thấp hơn
Dùng hàm max() và min()Ngắn gọn, hiệu suất caoPhụ thuộc vào thư viện

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về thuật toán, nhưng nếu muốn tối ưu hiệu suất, sử dụng hàm max() và min() trong Python là một lựa chọn tốt hơn.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

97 Học Python – Tính trung bình cộng các số chính phương

Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính trung bình cộng của các số chính phương trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số chính phương.
  2. Viết một hàm tính trung bình cộng các số chính phương trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_chinh_phuong(n):
    can_bac_hai = int(n ** 0.5)
    return can_bac_hai * can_bac_hai == n
def tinh_trung_binh_chinh_phuong(mang):
    tong = 0
    dem = 0
    for so in mang:
        if la_so_chinh_phuong(so):
            tong += so

            dem += 1

    return tong / dem if dem > 0 else 0
mang_so = [1, 2, 3, 4, 9, 16, 25, 30]
print("Trung bình cộng các số chính phương trong mảng:", tinh_trung_binh_chinh_phuong(mang_so))

 

Cách tối ưu

 

def la_so_chinh_phuong(n):

    can_bac_hai = int(n ** 0.5)

    return can_bac_hai * can_bac_hai == n




def tinh_trung_binh_chinh_phuong_toi_uu(mang):

    cac_so_chinh_phuong = [so for so in mang if la_so_chinh_phuong(so)]

    return sum(cac_so_chinh_phuong) / len(cac_so_chinh_phuong) if cac_so_chinh_phuong else 0




mang_so = [1, 2, 3, 4, 9, 16, 25, 30]

print("Trung bình cộng các số chính phương trong mảng:", tinh_trung_binh_chinh_phuong_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để tính trung bình cộng của các số chính phương là một lựa chọn tốt hơn.

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

96 Học Python – Tính trung bình cộng các số nguyên tố trong mảng

Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính trung bình cộng của các số nguyên tố trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số nguyên tố.
  2. Viết một hàm tính trung bình cộng các số nguyên tố trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):

        if n % i == 0:

            return False

    return True




def tinh_trung_binh_nguyen_to(mang):

    tong = 0

    dem = 0

    for so in mang:

        if la_so_nguyen_to(so):

            tong += so

            dem += 1

    return tong / dem if dem > 0 else 0




mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]

print("Trung bình cộng các số nguyên tố trong mảng:", tinh_trung_binh_nguyen_to(mang_so))

Cách tối ưu

def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def tinh_trung_binh_nguyen_to_toi_uu(mang):
    cac_so_nguyen_to = [so for so in mang if la_so_nguyen_to(so)]
    return sum(cac_so_nguyen_to) / len(cac_so_nguyen_to) if cac_so_nguyen_to else 0
mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]
print("Trung bình cộng các số nguyên tố trong mảng:", tinh_trung_binh_nguyen_to_toi_uu(mang_so))

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để tính trung bình cộng của các số nguyên tố là một lựa chọn tốt hơn.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

95 Học Python – Đếm xem trong mảng có bao nhiêu số nguyên tố

Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để đếm số lượng số nguyên tố trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số nguyên tố.
  2. Viết một hàm đếm số nguyên tố trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):

        if n % i == 0:

            return False

    return True




def dem_so_nguyen_to(mang):

    dem = 0

    for so in mang:

        if la_so_nguyen_to(so):

            dem += 1

    return dem




mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]

print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to(mang_so))

 

Cách tối ưu

 

def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def dem_so_nguyen_to_toi_uu(mang):
    return sum(1 for so in mang if la_so_nguyen_to(so))
mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]
print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để đếm số nguyên tố là một lựa chọn tốt hơn.

94 Học Python – Viết chương trình con tính tổng các phần tử chẵn

Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính tổng các phần tử chẵn trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tính tổng các phần tử chẵn trong mảng bằng vòng lặp.
  2. Viết một phiên bản tối ưu sử dụng hàm sum() của Python với điều kiện lọc số chẵn.
  3. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tinh_tong_chan(mang):

    tong = 0

    for so in mang:

        if so % 2 == 0:

            tong += so

    return tong




mang_so = [1, 2, 3, 4, 5, 6]

print("Tổng các phần tử chẵn trong mảng:", tinh_tong_chan(mang_so))

 

Cách tối ưu

 

def tinh_tong_chan_toi_uu(mang):

    return sum(so for so in mang if so % 2 == 0)

mang_so = [1, 2, 3, 4, 5, 6]

print("Tổng các phần tử chẵn trong mảng:", tinh_tong_chan_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Hàm sum() với lọc số chẵnNgắn gọn, hiệu suất caoÍt linh hoạt hơn

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng sum() với điều kiện lọc số chẵn là một lựa chọn tốt hơn.

 

93 Học Python – Viết chương trình con tính tổng các phần tử

Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính tổng các phần tử trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tính tổng các phần tử trong mảng bằng vòng lặp.
  2. Viết một phiên bản tối ưu sử dụng hàm sum() của Python.
  3. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tinh_tong_mang(mang):

    tong = 0

    for so in mang:

        tong += so

    return tong




mang_so = [1, 2, 3, 4, 5]

print("Tổng của mảng:", tinh_tong_mang(mang_so))

Cách tối ưu

def tinh_tong_mang_toi_uu(mang):

    return sum(mang)




mang_so = [1, 2, 3, 4, 5]

print("Tổng của mảng:", tinh_tong_mang_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Hàm sum()Ngắn gọn, hiệu suất caoÍt linh hoạt hơn

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng sum() là một lựa chọn tốt hơn.

92 Học Python – Viết hàm cộng trừ nhân chia 2 phân số mới nhất

Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số

Giới thiệu

Trong bài viết này, chúng ta sẽ viết các hàm để thực hiện các phép toán cộng, trừ, nhân, chia hai phân số trong Python. Chúng ta sẽ sử dụng thư viện math để tìm ước chung lớn nhất (UCLN) giúp rút gọn phân số sau khi tính toán.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một lớp PhanSo để đại diện cho phân số với tử số và mẫu số.
  2. Viết các phương thức thực hiện các phép toán cộng, trừ, nhân, chia hai phân số.
  3. Rút gọn kết quả bằng cách chia cả tử số và mẫu số cho UCLN.

Chương trình Python

Cách đơn giản

 

import math
def ucln(a, b):
    return math.gcd(a, b)
def rut_gon(tu, mau):
    u = ucln(tu, mau)
    return tu // u, mau // u
def cong(ps1, ps2):
    tu = ps1[0] * ps2[1] + ps2[0] * ps1[1]
    mau = ps1[1] * ps2[1]
    return rut_gon(tu, mau)
def tru(ps1, ps2):
    tu = ps1[0] * ps2[1] - ps2[0] * ps1[1]
    mau = ps1[1] * ps2[1]
    return rut_gon(tu, mau)
def nhan(ps1, ps2):
    return rut_gon(ps1[0] * ps2[0], ps1[1] * ps2[1])
def chia(ps1, ps2):
    return rut_gon(ps1[0] * ps2[1], ps1[1] * ps2[0])
ps1 = (1, 2)
ps2 = (3, 4)
print("Tổng:", cong(ps1, ps2))
print("Hiệu:", tru(ps1, ps2))
print("Tích:", nhan(ps1, ps2))
print("Thương:", chia(ps1, ps2))

Cách tối ưu với hướng đối tượng

 

import math
class PhanSo:
    def __init__(self, tu, mau):
        if mau == 0:
            raise ValueError("Mẫu số không thể bằng 0")
        self.tu = tu
        self.mau = mau
        self.rut_gon()
    def rut_gon(self):
        ucln = math.gcd(self.tu, self.mau)
        self.tu //= ucln
        self.mau //= ucln
    def __str__(self):
        return f"{self.tu}/{self.mau}"
    def cong(self, ps):
        return PhanSo(self.tu * ps.mau + ps.tu * self.mau, self.mau * ps.mau)
    def tru(self, ps):
        return PhanSo(self.tu * ps.mau - ps.tu * self.mau, self.mau * ps.mau)
    def nhan(self, ps):
        return PhanSo(self.tu * ps.tu, self.mau * ps.mau)
    def chia(self, ps):
        if ps.tu == 0:
            raise ValueError("Không thể chia cho 0")
        return PhanSo(self.tu * ps.mau, self.mau * ps.tu)
ps1 = PhanSo(1, 2)
ps2 = PhanSo(3, 4)
print(f"Tổng: {ps1.cong(ps2)}")
print(f"Hiệu: {ps1.tru(ps2)}")
print(f"Tích: {ps1.nhan(ps2)}")
print(f"Thương: {ps1.chia(ps2)}")

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Hàm đơn giảnDễ hiểu, nhanh triển khaiKhông tiện mở rộng
Hướng đối tượngDễ bảo trì, mở rộng tốtPhức tạp hơn

Kết luận

Cả hai phương pháp đều có ưu điểm riêng. Nếu chỉ cần tính toán nhanh, có thể sử dụng cách đơn giản. Nếu muốn mã nguồn dễ bảo trì và mở rộng, hướng đối tượng là lựa chọn tốt hơn.