Làm thế nào để bạn tìm thấy tổng của một giá trị trong 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ố

mytuple1 = [1, 2, 3, 4, 5, 6]
mytuple2 = [1.1, 2.2, 4.2, 5.6]
mytuple3 = [1+2j, 3, 4-1j, 7+8j, 10, 13j]

result1 = sum[mytuple1]
result2 = sum[mytuple2]
result3 = sum[mytuple3, start = 2j]

print[result1]
print[result2]
print[result3]

đầ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ố

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]

đầ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ố

mydict1 = {1:"hello", 2:"world", 3:"my", 4:"name", 5:"is", 6:"ABC"}
mydict2 = {1.1:"hello", 2.2:"world", 3:"my", 4.6:"name", 5:"is", 6.5:"ABC"}
mydict3 = {1+2j:"hello", 3:"world", 4-1j:"my", 7+8j:"name", 10:"is", 13j:"ABC"}

result1 = sum[mydict1]
result2 = sum[mydict2, start = 4.55]
result3 = sum[mydict3]

print[result1]
print[result2]
print[result3]

đầu ra

21
26.950000000000003
[25+22j]

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ố

# here we have a list of floating point numbers
mylist2 = [1.12, 1.34, 4.211, 8.120, 6, 8.333, 10.63, 13]

result3 = sum[mylist2]
result4 = sum[mylist2, 5.789]

print[result3]
print[result4]

đầ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ố

mylist1 = [1, 3, 4, 6, 7, 'hello world']
result = sum[mylist1]
print[result]

đầu ra

Traceback [most recent call last]:
  File "main.py", line 2, in 
    result = sum[mylist1]
TypeError: unsupported operand type[s] for +: 'int' and 'str'

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ố

mylist = [1, 2, 3, 4, 5, 6]
result = sum[mylist, start = 'hello']
print[result]

đầu ra

________số 8

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ố

exp1 = [[1], [2,3], [4,5,6], [7,8,9,10]]
res = sum[exp1, start = 3]
print[res]

đầu ra

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
0

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ố

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
1

đầu ra

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
2

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ố

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
3

đầu ra

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
4

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ố

myset1 = {1, 2, 3, 4, 5, 6}
myset2 = {1.1, 2.2, 4.2, 5.6}
myset3 = {1+2j, 3, 4-1j, 7+8j, 10, 13j}

result1 = sum[myset1]
result2 = sum[myset2, 3+4j]
result3 = sum[myset3, start = 2.3]

print[result1]
print[result2]
print[result3]
5

đầ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?

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ó phải là một phương thức trong Python không?

Trong mã Python, hàm sum[] có thể được sử dụng để tính tổng của tất cả các giá trị trong một đối tượng có thể lặp lại . Phương pháp này rất hữu ích khi bạn cần tổng giá trị của một danh sách các mục, thường gặp trong một số phép tính toán học. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng phương thức sum[] trong Python.

Chủ Đề