97 Học Python – Tính trung bình cộng các số chính phương
DANH SÁCH TÓM TẮT:
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:
- 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
- Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
- Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
- 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
- Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
- Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
- Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
- Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
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
Cách thực hiện
- Viết một hàm kiểm tra số chính phương.
- 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.
- Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
- 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ểm | Nhược điểm |
Vòng lặp | Dễ hiểu, phù hợp cho người mới học | Hiệu suất thấp hơn |
Dùng list comprehension | Ngắn gọn, hiệu suất cao | Khó 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