Trong hướng dẫn ngắn này, chúng ta xem xét các phương pháp khác nhau để tìm tổng[] của các số, số nguyên, số float và số phức trong Python
Mục lục - Python Sum
- hàm tổng []
- Tổng các số
- Tổng các số và giá trị bắt đầu
- Tổng giá trị float
- Tổng của giá trị float và số nguyên
- Tổng các số phức
- Tạo vòng lặp for
- Sử dụng hàm đệ quy
- Bớt tư tưởng
hàm tổng []
Hàm sum[] trả về tổng của tất cả các mục trong một lần lặp. Nó là một chức năng tích hợp sẵn của Python
Có nhiều phương pháp khác nhau để làm điều này. Chúng ta có thể sử dụng các thư viện Python hoặc có thể sử dụng các phương thức khác cho cùng một. Chúng ta hãy xem xét từng cái một
cú pháp
sum[iterable, start]
Thông số
Iterable - các giá trị được thêm vào. Đó là một lĩnh vực bắt buộc. Trình lặp có thể là danh sách, bộ dữ liệu, chuỗi hoặc từ điển - về cơ bản, một nhóm số
Bắt đầu - giá trị mà lần lặp sẽ được thêm vào. Đây là trường tùy chọn và nhận giá trị “0” nếu chúng ta không nhập bất kỳ
Tổng các số
Thí dụ
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
đầu ra
25
Tổng các số và giá trị bắt đầu
Thí dụ
# using syntax sum[iterable, start]
a = [1, 3, 5, 7, 9]
b = sum[a, 11]
print[b]
Đầu ra
36
Tổng giá trị float
Thí dụ
a= [10.2, 12.5, 11.8]
total= sum[a]
print[total]
Đầu ra
34.5
Tổng của giá trị float và số nguyên
Thí dụ
a= [1, 3, 5, 7, 9, 10.2, 12.5, 11.8]
total= sum[a]
print[total]
Đầu ra
________số 8Tổng các số phức
Hàm sum[] có thể cộng các số phức giống như nó được sử dụng để tính tổng các số nguyên, số float hoặc kết hợp cả hai
Thí dụ
s = sum[[1 + 3j, 5 + 7j]]
print[s]
s = sum[[1 + 3j, 5 + 7j], 9 + 11j]
print[s]
s = sum[[1 + 3j, 5, 7.5 - 9j]]
print[s]
đầu ra
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
0Tạo vòng lặp for
Vòng lặp for chạy từ giá trị đầu tiên đến giá trị cuối cùng trong iterable đã khai báo và cộng từng số một vào tổng. Chúng tôi tạo một biến giữ tổng cho đến khi kết thúc vòng lặp và trả về tổng của tất cả các giá trị. Đây là một ví dụ về vòng lặp for để lấy tổng khi sử dụng Python
Thí dụ
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
1đầu ra
25
Sử dụng hàm đệ quy
Hàm gọi chính nó được gọi là Đệ quy. Để tính tổng các số trong python, chúng ta có thể khai báo một hàm để cộng hai giá trị và gọi hàm tương tự để cộng một giá trị khác vào giá trị trả về của hàm. Dưới đây là một ví dụ về cách chúng ta có thể sử dụng hàm đệ quy
Thí dụ
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
3đầu ra
25
Bớt tư tưởng
Tổng của các số có thể được lấy trong python bằng cách sử dụng hàm sum [], bằng cách sử dụng vòng lặp for hoặc sử dụng hàm đệ quy. Cách dễ dàng để tính tổng các số là sử dụng hàm sum[]. Chúng ta cũng có thể tìm tổng của danh sách bằng Python
Các bước tìm tổng các phần tử của một bộ cũng giống như của một danh sách. Chỉ cần gọi hàm bằng cách chuyển bộ dữ liệu dưới dạng tham số
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
5đầu ra
Giải trình
Ở đây chúng ta đã gọi hàm sum[] bằng cách chuyển các bộ số nguyên, số dấu phẩy động và số phức. Như bạn có thể thấy, kiểu dữ liệu của các kết quả tương ứng cũng chỉ là số nguyên, dấu phẩy động và số phức
ví dụ 2. Tìm tổng các phần tử của tập hợp trong Python
Cũng giống như list và tuple, chúng ta cũng có thể sử dụng sum[] trong Python để lấy tổng các phần tử của một tập hợp như minh họa bên dưới
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
6đầu ra
Giải trình
Các hàm sum[] trả về kết quả mong đợi. Hai điều đáng chú ý trong ví dụ trên
- Trong khi tính toán kết quả2, chúng tôi đã đưa ra một tập hợp các số dấu phẩy động bắt đầu bằng các số phức kiểu. Do đó, trong tổng, chúng ta nhận được một số phức với nội dung của tập hợp được thêm vào phần thực của nó và bắt đầu như một phần ảo
- Trong khi tính toán kết quả3, chúng tôi đã đưa ra một tập hợp các số phức với giá trị bắt đầu là số thực kiểu. Kết quả là, tổng kết của bắt đầu kết thúc được đưa vào phần thực
ví dụ 3. Tìm tổng các khóa từ điển trong Python
Đáng ngạc nhiên là hàm sum[] trong Python cũng hoạt động với từ điển Python. Nếu bạn chuyển một từ điển có các phím số, hàm sẽ trả về tổng của các phím số có trong từ điển đó. Các ví dụ mã sau đây sẽ giúp bạn hiểu nó tốt hơn
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
7đầu ra
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
8Giải trình
- Trong lệnh gọi hàm đầu tiên, chúng tôi đã cung cấp từ điển làm đầu vào và tính toán tổng các giá trị chính, 1+2+3+4+5+6 = 21
- Hàm tiếp theo gọi sum[] để tính tổng các giá trị chính của từ điển cùng với giá trị offset là 4. 55. Ở đây bạn có thể thấy một số hành vi lạ liên quan đến độ chính xác của kết quả [chúng ta sẽ thảo luận về vấn đề này sau]
- Trong lần gọi hàm cuối cùng, chúng ta có khóa là số phức và do đó, tổng thu được của khóa khi sử dụng sum[] trong Python cũng là một số phức
Ví dụ 4. Tìm tổng của danh sách chứa số dấu phẩy động
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
9đầu ra
Giải trình
Như bạn có thể thấy, độ chính xác của đầu ra đầu tiên không khớp với độ chính xác của đầu vào. Nhưng trong đầu ra thứ hai, nó không. Hành vi "kỳ lạ" này là do cách xử lý nội bộ các phép toán dấu phẩy động trong Python
Ví dụ 5. Truyền một danh sách chuỗi và số
Mã số
25
0đầu ra
25
1Giải trình
Ở đây chúng ta gặp lỗi do khi tổng hợp nội dung của mylist1, chương trình gặp phải một chuỗi, không thể cộng vào số nguyên bằng toán tử +
Ví dụ 6. Chuỗi bù cùng với Danh sách các số có thể lặp lại
Hãy xem điều gì sẽ xảy ra nếu có sự không khớp trong các kiểu dữ liệu đối với nội dung của iterable và tham số bắt đầu
Mã số
25
2đầu ra
25
3Giải trình
Lỗi xảy ra do khi chúng tôi chuyển một chuỗi làm tham số thứ hai cho sum[], chương trình đã đoán rằng chúng tôi đang cố nối hoặc tính tổng các chuỗi và đưa ra lỗi hiển thị hàm sum[] trong Python không thể tính tổng các chuỗi
Ví dụ 7. Truyền loại dữ liệu khác làm offset
Chúng ta hãy xem một trường hợp lỗi khác trong đó kiểu dữ liệu của tham số iterable và start không khớp
Mã số
25
4đầu ra
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
60Giải trình
Ở đây, nội dung của iterable thuộc kiểu list trong khi tham số bắt đầu thuộc kiểu int, do đó do kiểu này không tương thích nên chương trình đã báo lỗi. Bạn sẽ gặp các lỗi tương tự trong các trường hợp không tương thích khác, chẳng hạn như khi bộ lặp là một danh sách các bộ và giá trị bắt đầu là một số nguyên hoặc một danh sách
Ví dụ 8. Sử dụng hàm tính tổng với Danh sách tập hợp
Hãy xem điều gì sẽ xảy ra nếu nội dung của iterable không thể tổng hợp được dưới phép cộng + toán tử
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
61đầu ra
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
62Giải trình
Ở đây chúng ta có thể thấy rằng chương trình đã báo lỗi khi chỉ định rằng hai đối tượng tập hợp không phải là toán hạng thích hợp cho toán tử cộng [+]. Hiểu, điều này khác với trường hợp khi chúng ta thêm nội dung của tập hợp. Ở đây chúng tôi đang cố gắng bằng cách nào đó tự thêm các bộ. Loại lỗi tương tự sẽ được hiển thị nếu chúng tôi cố gắng "thêm" từ điển
Nhưng liệu chúng ta có gặp lỗi tương tự nếu thử điều gì đó tương tự với danh sách và bộ dữ liệu không? . Tại sao? . Một điểm đáng chú ý là toán tử + trong Python không chỉ có khả năng cộng số mà còn có thể nối. Đây là lý do tại sao hàm tổng trong Python sẽ không báo lỗi nếu chúng ta cố gắng "cộng" chúng lại. Xem ví dụ tiếp theo
Ví dụ 9. Sử dụng hàm tổng với Danh sách Danh sách và Tuple
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
63đầu ra
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
64Giải trình
- Trong trường hợp đầu tiên, các danh sách con có trong exp1 được nối với danh sách trống [] [được cung cấp dưới dạng tham số bắt đầu]. Danh sách cuối cùng được hiển thị dưới dạng đầu ra
- Trong phần thứ hai của mã, các bộ có trong danh sách được nối với bộ [1,3] được cung cấp làm tham số bắt đầu
- Một điều quan trọng cần lưu ý là trong cả hai trường hợp này, thứ tự nội dung của danh sách và bộ dữ liệu được giữ nguyên trong kết quả cuối cùng
Tổng các số dấu phẩy động trong Python
Như chúng ta đã thấy trong các ví dụ trước, sử dụng tổng trên các số dấu phẩy động mang lại kết quả lạ trong Python. Do đó, nên sử dụng hàm fsum[] được cung cấp trong mô-đun toán học của Thư viện chuẩn của Python để thêm số dấu phẩy động vào danh sách, bộ, v.v.
Hãy xem một ví dụ để cho thấy sự khác biệt trong kết quả chúng ta nhận được
Mã số
# using syntax sum[iterable]
a = [1, 3, 5, 7, 9]
b = sum[a]
print[b]
65đầu ra
Giải trình
- Chúng ta có thể thấy rằng fsum[] trả về tổng với độ chính xác chính xác, trong khi sum[] cho một kết quả lạ, do tính toán bên trong của Python với các số dấu phẩy động
- Ở đây, chúng tôi đã gọi hàm fsum[] từ mô-đun toán học đã nhập, đây là hàm tổng được khuyến nghị để cộng các số có dấu phẩy động. Điều quan trọng cần nhớ là không giống như sum, fsum không nhận đối số thứ hai tùy chọn, nghĩa là, nó chỉ nhận một đối số, đó là đối số có thể lặp lại
Tổng Python [] so với tổng NumPy []
Numpy, một thư viện số Python mã nguồn mở phổ biến [tức là mã nguồn của nó được cung cấp công khai], cũng cung cấp cho chúng ta hàm sum[] của chính nó. Vì vậy, sự khác biệt giữa tổng [] và tổng [] của Python là gì và khi nào thì sử dụng cái nào?