Tổng được sử dụng để làm gì trong python?

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ố 8

Tổ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)
0

Tạ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

  1. 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
  2. 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)
8

Giả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
1

Giả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
3

Giả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)
60

Giả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)
62

Giả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)
64

Giả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?

Khi nào tôi có thể sử dụng sum() trong Python?

Sử dụng hàm sum() của Python để cộng một số giá trị số một cách hiệu quả. Nối các danh sách và bộ dữ liệu với sum() Sử dụng sum() để tiếp cận các bài toán tổng phổ biến. Sử dụng các giá trị thích hợp cho các đối số trong sum()

tổng += i nghĩa là gì trong Python?

sum += i giống như. tổng = tổng + i; . “ Đặt tổng bằng chính nó cộng với i . " Có lý? .

Tổng của chuỗi trong Python là gì?

n=int(input("Nhập số lượng từ. ")) x=int(input("Nhập giá trị của x. ")) sum1=1 cho i trong phạm vi(2,n+1). sum1=sum1+((x**i)/i ) print("Tổng của chuỗi là",round(sum1,2))