Hướng dẫn how do you find the sum of a sequence in python? - làm thế nào để bạn tìm thấy tổng của một chuỗi trong python?

Có một loạt các cách để làm điều này. Tuy nhiên, nếu bạn nghĩ về toán học, nó rất giống với vấn đề cũ của Gauss. Gauss được yêu cầu thêm các số từ 1 đến 100, và anh ta nhận ra rằng mỗi cặp giá trị cao và thấp được tổng hợp lên 101 (100 + 1, 99 + 2, 98 + 3,)

Show
high = b
low = a

Vì vậy, chúng tôi phải nhân một số giá trị

result //= 2
3. Có bao nhiêu? Đối với tất cả các số nguyên, đó chỉ là

num_pairs = (high-low) // 2

Sau đó, chúng tôi nhân số đó với

result //= 2
4 để nhận câu trả lời:

result = (high + low) * num_pairs

Nhưng bạn chỉ muốn mọi thứ khác, vì vậy chúng tôi lại chia cho hai người:

result //= 2

Totally:

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step

hoặc

result //= 2
5

Bây giờ điều này vẫn không hoàn toàn là một câu trả lời cho câu hỏi của bạn, bởi vì nó cần được bù đắp tùy thuộc vào việc giá trị thấp của bạn có kỳ lạ hay không và liệu giá trị cao của bạn được bao gồm hay loại trừ. Nhưng tôi sẽ để lại như một bài tập.

Làm cho câu trả lời CW này để ai đó có thể chỉnh sửa nếu toán của tôi lộn xộn.

Chức năng tích hợp của Python,

result //= 2
6 là một cách hiệu quả và pythonic để tổng hợp một danh sách các giá trị số. Thêm một số số lại với nhau là một bước trung gian phổ biến trong nhiều tính toán, vì vậy
result //= 2
6 là một công cụ khá tiện dụng cho một lập trình viên Python.

Là một trường hợp sử dụng bổ sung và thú vị, bạn có thể kết hợp các danh sách và bộ dữ liệu bằng cách sử dụng

result //= 2
6, có thể thuận tiện khi bạn cần làm phẳng danh sách danh sách.

Trong hướng dẫn này, bạn sẽ học cách:

  • Tổng các giá trị số bằng tay bằng cách sử dụng các kỹ thuật và công cụ chunggeneral techniques and tools
  • Sử dụng Python từ
    result //= 2
    
    6 để thêm một số giá trị số một cách hiệu quảPython’s
    result //= 2
    
    6
    to add several numeric values efficiently
  • Danh sách Concatenate và bộ dữ liệu với
    result //= 2
    
    6
    with
    result //= 2
    
    6
  • Sử dụng
    result //= 2
    
    6 để tiếp cận các vấn đề tổng hợp phổ biếnsummation problems
  • Sử dụng các giá trị phù hợp cho các đối số
    >>> def sum_numbers(numbers):
    ...     total = 0
    ...     for number in numbers:
    ...         total += number
    ...     return total
    ...
    
    >>> sum_numbers([1, 2, 3, 4, 5])
    15
    
    >>> sum_numbers([])
    0
    
    6 và
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> sum([])
    0
    
    0 trong
    result //= 2
    
    6arguments in
    result //= 2
    
    6
  • Quyết định giữa
    result //= 2
    
    6 và các công cụ thay thế để tổng hợp và nối các đối tượngalternative tools to sum and concatenate objects

Với kiến ​​thức này, giờ đây bạn có thể thêm nhiều giá trị số lại với nhau theo cách pythonic, dễ đọc và hiệu quả.

Làm thế nào để bạn tổng hợp một chuỗi các số trong Python?

Bây giờ bạn có thể sử dụng SUM hàm tích hợp () của Python để thêm nhiều giá trị số lại với nhau.

SUM () SUM () trong Python là gì?

Hàm python sum () hàm sum () trả về một số, tổng của tất cả các mục trong một số không thể điều chỉnh được.

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

Trong các tình huống như thế này, cho dù bạn có một danh sách dài hay ngắn, Python có thể khá hữu ích để giải quyết các vấn đề tổng kết.summation problems.

Nếu bạn muốn tổng hợp các số bằng cách tạo giải pháp của riêng mình từ đầu, thì bạn có thể thử sử dụng vòng lặp

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5:

>>>

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15

Ở đây, trước tiên bạn tạo

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 và khởi tạo nó thành
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Biến này hoạt động như một bộ tích lũy trong đó bạn lưu trữ kết quả trung gian cho đến khi bạn nhận được kết quả cuối cùng. Vòng lặp lặp qua
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 và cập nhật
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 bằng cách tích lũy từng giá trị liên tiếp bằng cách sử dụng một bài tập tăng cường.

Bạn cũng có thể quấn vòng

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5 trong một hàm. Bằng cách này, bạn có thể sử dụng lại mã cho các danh sách khác nhau:

>>>

>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15

Ở đây, trước tiên bạn tạo

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 và khởi tạo nó thành
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Biến này hoạt động như một bộ tích lũy trong đó bạn lưu trữ kết quả trung gian cho đến khi bạn nhận được kết quả cuối cùng. Vòng lặp lặp qua
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 và cập nhật
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 bằng cách tích lũy từng giá trị liên tiếp bằng cách sử dụng một bài tập tăng cường.

>>>

>>> def sum_numbers(numbers):
...     if len(numbers) == 0:
...         return 0
...     return numbers[0] + sum_numbers(numbers[1:])
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
base case that stops the recursion and a recursive case to call the function and start the implicit loop.

Ở đây, trước tiên bạn tạo

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 và khởi tạo nó thành
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Biến này hoạt động như một bộ tích lũy trong đó bạn lưu trữ kết quả trung gian cho đến khi bạn nhận được kết quả cuối cùng. Vòng lặp lặp qua
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 và cập nhật
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 bằng cách tích lũy từng giá trị liên tiếp bằng cách sử dụng một bài tập tăng cường.

Bạn cũng có thể quấn vòng

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5 trong một hàm. Bằng cách này, bạn có thể sử dụng lại mã cho các danh sách khác nhau:

>>>

>>> from functools import reduce
>>> from operator import add

>>> reduce(add, [1, 2, 3, 4, 5])
15

>>> reduce(add, [])
Traceback (most recent call last):
    ...
TypeError: reduce() of empty sequence with no initial value

>>> reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
15

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15

Ở đây, trước tiên bạn tạo

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 và khởi tạo nó thành
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Biến này hoạt động như một bộ tích lũy trong đó bạn lưu trữ kết quả trung gian cho đến khi bạn nhận được kết quả cuối cùng. Vòng lặp lặp qua
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 và cập nhật
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
6 bằng cách tích lũy từng giá trị liên tiếp bằng cách sử dụng một bài tập tăng cường.

Bạn cũng có thể quấn vòng

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5 trong một hàm. Bằng cách này, bạn có thể sử dụng lại mã cho các danh sách khác nhau:

Trong

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
1, bạn có thể sử dụng một số ít hơn, một danh sách các giá trị số, như một đối số và trả về tổng số của các giá trị trong danh sách đầu vào. Nếu danh sách đầu vào trống, thì hàm trả về
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Vòng lặp
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5 là cùng một vòng mà bạn đã thấy trước đây.

Bạn cũng có thể sử dụng đệ quy thay vì lặp. Recursion là một kỹ thuật lập trình chức năng trong đó một hàm được gọi trong định nghĩa riêng của nó. Nói cách khác, một hàm đệ quy tự gọi nó trong một vòng lặp:

Khi bạn xác định chức năng đệ quy, bạn có nguy cơ chạy vào một vòng lặp vô hạn. Để ngăn chặn điều này, bạn cần xác định cả trường hợp cơ sở dừng đệ quy và trường hợp đệ quy để gọi hàm và bắt đầu vòng lặp ngầm.

Trong ví dụ trên, trường hợp cơ sở ngụ ý rằng tổng của danh sách không có độ dài là

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
7. Trường hợp đệ quy ngụ ý rằng tổng số là giá trị đầu tiên,
>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
5, cộng với tổng của phần còn lại của các giá trị,
>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
6. Bởi vì trường hợp đệ quy sử dụng một chuỗi ngắn hơn trên mỗi lần lặp, bạn dự kiến ​​sẽ chạy vào trường hợp cơ sở khi
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 là danh sách không có độ dài. Kết quả cuối cùng, bạn nhận được tổng của tất cả các mục trong danh sách đầu vào của bạn,
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8.

Một tùy chọn khác để tổng hợp danh sách các số trong Python là sử dụng

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
9 từ
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
0. Để có được tổng của một danh sách các số, bạn có thể vượt qua
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
1 hoặc hàm
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
2 thích hợp làm đối số đầu tiên cho
>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
9:

Bạn có thể gọi

>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
9 với mức giảm, hoặc gấp,
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
5 cùng với
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6 làm đối số. Sau đó
>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
9 sử dụng hàm đầu vào để xử lý
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6 và trả về một giá trị tích lũy duy nhất.

>>>

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0

Trong ví dụ đầu tiên, hàm giảm là

>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
9, lấy hai số và thêm chúng lại với nhau. Kết quả cuối cùng là tổng của các số trong đầu vào
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6. Như một nhược điểm,
>>> numbers = [1, 2, 3, 4, 5]
>>> total = 0

>>> for number in numbers:
...     total += number
...

>>> total
15
9 tăng
>>> def sum_numbers(numbers):
...     if len(numbers) == 0:
...         return 0
...     return numbers[0] + sum_numbers(numbers[1:])
...

>>> sum_numbers([1, 2, 3, 4, 5])
15
2 khi bạn gọi nó với một
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6 trống rỗng.

Trong ví dụ thứ hai, hàm giảm là hàm

>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
2 trả về việc bổ sung hai số.

  1. Vì các tổng như thế này là phổ biến trong lập trình, mã hóa một hàm mới mỗi khi bạn cần tổng hợp một số số là rất nhiều công việc lặp đi lặp lại. Ngoài ra, sử dụng
    >>> numbers = [1, 2, 3, 4, 5]
    >>> total = 0
    
    >>> for number in numbers:
    ...     total += number
    ...
    
    >>> total
    15
    
    9 là giải pháp dễ đọc nhất có sẵn cho bạn.
    is a required argument that can hold any Python iterable. The iterable typically contains numeric values but can also contain lists or tuples.
  2. >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> sum([])
    0
    
    0 là một đối số tùy chọn có thể giữ giá trị ban đầu. Giá trị này sau đó được thêm vào kết quả cuối cùng. Nó mặc định là
    def sumrange(low, high, step):
         num_pairs = (high - low) // 2
         result = (high + low) * num_pairs
         return result // step
    
    7.
    is an optional argument that can hold an initial value. This value is then added to the final result. It defaults to
    def sumrange(low, high, step):
         num_pairs = (high - low) // 2
         result = (high + low) * num_pairs
         return result // step
    
    7.

Trong nội bộ,

result //= 2
6 thêm
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 cộng với các giá trị trong
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6 từ trái sang phải. Các giá trị trong đầu vào
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6 thường là các số, nhưng bạn cũng có thể sử dụng danh sách và bộ dữ liệu. Đối số tùy chọn
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 có thể chấp nhận một số, danh sách hoặc tuple, tùy thuộc vào những gì được truyền đến
>>> def sum_numbers(numbers):
...     total = 0
...     for number in numbers:
...         total += number
...     return total
...

>>> sum_numbers([1, 2, 3, 4, 5])
15

>>> sum_numbers([])
0
6. Nó có thể lấy một chuỗi.

Trong hai phần sau, bạn sẽ học được những điều cơ bản về việc sử dụng

result //= 2
6 trong mã của mình.

Đối số cần thiết: >>> def sum_numbers(numbers): ... total = 0 ... for number in numbers: ... total += number ... return total ... >>> sum_numbers([1, 2, 3, 4, 5]) 15 >>> sum_numbers([]) 0 6

Chấp nhận bất kỳ python nào có thể thay đổi như lập luận đầu tiên của nó làm cho

result //= 2
6 chung, tái sử dụng và đa hình. Vì tính năng này, bạn có thể sử dụng
result //= 2
6 với danh sách, bộ dữ liệu, bộ, đối tượng
num_pairs = (high-low) // 2
02 và từ điển:

>>>

num_pairs = (high-low) // 2
0

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

Nếu từ điển của bạn lưu trữ các số trong các giá trị của nó và bạn muốn tổng hợp các giá trị này thay vì các khóa, thì bạn có thể làm điều này bằng cách sử dụng

num_pairs = (high-low) // 2
06 giống như trong ví dụ
num_pairs = (high-low) // 2
05.

Bạn cũng có thể sử dụng

result //= 2
6 với danh sách hiểu như một đối số. Ở đây, một ví dụ tính toán tổng của các bình phương của một phạm vi giá trị:

>>>

num_pairs = (high-low) // 2
1

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

>>>

num_pairs = (high-low) // 2
2

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

Nếu từ điển của bạn lưu trữ các số trong các giá trị của nó và bạn muốn tổng hợp các giá trị này thay vì các khóa, thì bạn có thể làm điều này bằng cách sử dụng num_pairs = (high-low) // 2 06 giống như trong ví dụ num_pairs = (high-low) // 2 05.

Bạn cũng có thể sử dụng

result //= 2
6 với danh sách hiểu như một đối số. Ở đây, một ví dụ tính toán tổng của các bình phương của một phạm vi giá trị:

>>>

num_pairs = (high-low) // 2
3

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

Nếu từ điển của bạn lưu trữ các số trong các giá trị của nó và bạn muốn tổng hợp các giá trị này thay vì các khóa, thì bạn có thể làm điều này bằng cách sử dụng

num_pairs = (high-low) // 2
06 giống như trong ví dụ
num_pairs = (high-low) // 2
05.

Bạn cũng có thể sử dụng result //= 2 6 với danh sách hiểu như một đối số. Ở đây, một ví dụ tính toán tổng của các bình phương của một phạm vi giá trị:

Python 2.4 đã thêm biểu thức máy phát vào ngôn ngữ. Một lần nữa,

result //= 2
6 hoạt động như mong đợi khi bạn sử dụng biểu thức máy phát làm đối số:

Ví dụ này cho thấy một trong những kỹ thuật pythonic nhất để tiếp cận vấn đề tổng kết. Nó cung cấp một giải pháp thanh lịch, có thể đọc được và hiệu quả trong một dòng mã duy nhất.

>>>

num_pairs = (high-low) // 2
4

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.floating-point numbers. It’s worth noting the function’s behavior when you use the special symbols
num_pairs = (high-low) // 2
27 and
num_pairs = (high-low) // 2
28 in the calls
num_pairs = (high-low) // 2
29 and
num_pairs = (high-low) // 2
30. The first symbol represents an infinite value, so
result //= 2
6 returns
num_pairs = (high-low) // 2
27. The second symbol represents NaN (not a number) values. Since you can’t add numbers with non-numbers, you get
num_pairs = (high-low) // 2
28 as a result.

Nếu từ điển của bạn lưu trữ các số trong các giá trị của nó và bạn muốn tổng hợp các giá trị này thay vì các khóa, thì bạn có thể làm điều này bằng cách sử dụng

num_pairs = (high-low) // 2
06 giống như trong ví dụ
num_pairs = (high-low) // 2
05.

Bạn cũng có thể sử dụng result //= 2 6 với danh sách hiểu như một đối số. Ở đây, một ví dụ tính toán tổng của các bình phương của một phạm vi giá trị:

Python 2.4 đã thêm biểu thức máy phát vào ngôn ngữ. Một lần nữa,

result //= 2
6 hoạt động như mong đợi khi bạn sử dụng biểu thức máy phát làm đối số:

>>>

num_pairs = (high-low) // 2
5

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

Nếu từ điển của bạn lưu trữ các số trong các giá trị của nó và bạn muốn tổng hợp các giá trị này thay vì các khóa, thì bạn có thể làm điều này bằng cách sử dụng

num_pairs = (high-low) // 2
06 giống như trong ví dụ
num_pairs = (high-low) // 2
05.

>>>

num_pairs = (high-low) // 2
6

Trong tất cả các ví dụ này,

result //= 2
6 tính tổng số học của tất cả các giá trị trong đầu vào có thể đánh giá cao bất kể loại của chúng. Trong hai ví dụ từ điển, cả hai gọi đến
result //= 2
6 trả về tổng các khóa của từ điển đầu vào. Ví dụ đầu tiên tổng hợp các khóa theo mặc định và ví dụ thứ hai tổng hợp các khóa do cuộc gọi
num_pairs = (high-low) // 2
05 trên từ điển đầu vào.

Thực hành với Python từ result //= 2 6

Cho đến nay, bạn đã học được những điều cơ bản khi làm việc với

result //= 2
6. Bạn đã học cách sử dụng hàm này để thêm các giá trị số lại với nhau và cũng để kết hợp các chuỗi như danh sách và bộ dữ liệu.

Trong phần này, bạn sẽ xem xét một số ví dụ khác về thời điểm và cách sử dụng

result //= 2
6 trong mã của bạn. Với các ví dụ thực tế này, bạn sẽ biết rằng chức năng tích hợp này khá tiện dụng khi bạn thực hiện các tính toán yêu cầu tìm tổng số một loạt các số như một bước trung gian.

Bạn cũng sẽ học được rằng

result //= 2
6 có thể hữu ích khi bạn làm việc với các danh sách và bộ dữ liệu. Một ví dụ đặc biệt mà bạn sẽ xem là khi bạn cần làm phẳng danh sách các danh sách.

Tính toán tổng tích lũy

Ví dụ đầu tiên mà bạn mã hóa phải làm với cách tận dụng đối số

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 để tổng hợp các danh sách tích lũy của các giá trị số.

Giả sử bạn đang phát triển một hệ thống để quản lý doanh số của một sản phẩm nhất định tại một số điểm bán hàng khác nhau. Mỗi ngày, bạn nhận được một báo cáo đơn vị bán từ mỗi điểm bán. Bạn cần tính toán một cách có hệ thống số tiền tích lũy để biết có bao nhiêu đơn vị mà toàn bộ công ty được bán trong tuần. Để giải quyết vấn đề này, bạn có thể sử dụng

result //= 2
6:

>>>

num_pairs = (high-low) // 2
7

Bằng cách sử dụng

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0, bạn đặt giá trị ban đầu để khởi tạo tổng, cho phép bạn thêm các đơn vị liên tiếp vào phần phụ được tính toán trước đó. Vào cuối tuần, bạn sẽ có tổng số lượng đơn vị bán của công ty.

Tính toán giá trị trung bình của một mẫu

Một trường hợp sử dụng thực tế khác của

result //= 2
6 là sử dụng nó như một tính toán trung gian trước khi thực hiện các tính toán thêm. Ví dụ, giả sử bạn cần tính toán trung bình số học của một mẫu của các giá trị số. Giá trị trung bình số học, còn được gọi là trung bình, là tổng số của các giá trị chia cho số lượng giá trị hoặc điểm dữ liệu, trong mẫu.average, is the total sum of the values divided by the number of values, or data points, in the sample.

Nếu bạn có mẫu [2, 3, 4, 2, 3, 6, 4, 2] và bạn muốn tính toán trung bình số học bằng tay, thì bạn có thể giải quyết hoạt động này:

(2 + 3 + 4 + 2 + 3 + 6 + 4 + 2) / 8 = 3.25

Nếu bạn muốn tăng tốc độ này bằng cách sử dụng Python, bạn có thể chia nó thành hai phần. Phần đầu tiên của tính toán này, nơi bạn đang thêm các số cùng nhau, là một nhiệm vụ cho

result //= 2
6. Phần tiếp theo của thao tác, nơi bạn chia cho 8, sử dụng số lượng số trong mẫu của bạn. Để tính toán ước số của bạn, bạn có thể sử dụng
num_pairs = (high-low) // 2
57:

>>>

num_pairs = (high-low) // 2
8

Bằng cách sử dụng

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0, bạn đặt giá trị ban đầu để khởi tạo tổng, cho phép bạn thêm các đơn vị liên tiếp vào phần phụ được tính toán trước đó. Vào cuối tuần, bạn sẽ có tổng số lượng đơn vị bán của công ty.

Tính toán giá trị trung bình của một mẫu

>>>

num_pairs = (high-low) // 2
9

Bằng cách sử dụng

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0, bạn đặt giá trị ban đầu để khởi tạo tổng, cho phép bạn thêm các đơn vị liên tiếp vào phần phụ được tính toán trước đó. Vào cuối tuần, bạn sẽ có tổng số lượng đơn vị bán của công ty.

Tính toán giá trị trung bình của một mẫu

Một trường hợp sử dụng thực tế khác của result //= 2 6 là sử dụng nó như một tính toán trung gian trước khi thực hiện các tính toán thêm. Ví dụ, giả sử bạn cần tính toán trung bình số học của một mẫu của các giá trị số. Giá trị trung bình số học, còn được gọi là trung bình, là tổng số của các giá trị chia cho số lượng giá trị hoặc điểm dữ liệu, trong mẫu.

Nếu bạn có mẫu [2, 3, 4, 2, 3, 6, 4, 2] và bạn muốn tính toán trung bình số học bằng tay, thì bạn có thể giải quyết hoạt động này:

(2 + 3 + 4 + 2 + 3 + 6 + 4 + 2) / 8 = 3.25

Nếu bạn muốn tăng tốc độ này bằng cách sử dụng Python, bạn có thể chia nó thành hai phần. Phần đầu tiên của tính toán này, nơi bạn đang thêm các số cùng nhau, là một nhiệm vụ cho

result //= 2
6. Phần tiếp theo của thao tác, nơi bạn chia cho 8, sử dụng số lượng số trong mẫu của bạn. Để tính toán ước số của bạn, bạn có thể sử dụng
num_pairs = (high-low) // 2
57:

>>>

result = (high + low) * num_pairs
0

Bằng cách sử dụng

>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0, bạn đặt giá trị ban đầu để khởi tạo tổng, cho phép bạn thêm các đơn vị liên tiếp vào phần phụ được tính toán trước đó. Vào cuối tuần, bạn sẽ có tổng số lượng đơn vị bán của công ty.

Tính toán giá trị trung bình của một mẫu

Để đối phó với khả năng này, bạn có thể kết thúc cuộc gọi đến

result //= 2
6 trong một chức năng tùy chỉnh và cung cấp một kiểm tra thích hợp cho độ dài của các chuỗi đầu vào:

>>>

result = (high + low) * num_pairs
1

Ở đây,

num_pairs = (high-low) // 2
75 lấy hai chuỗi làm đối số và trả về sản phẩm DOT tương ứng của chúng. Nếu các chuỗi đầu vào có độ dài khác nhau, thì hàm tăng
num_pairs = (high-low) // 2
61.

Nhúng chức năng vào một chức năng tùy chỉnh cho phép bạn sử dụng lại mã. Nó cũng cung cấp cho bạn cơ hội để đặt tên cho chức năng một cách mô tả để người dùng biết chức năng làm gì chỉ bằng cách đọc tên của nó.

Làm phẳng danh sách các danh sách

Làm phẳng danh sách các danh sách là một nhiệm vụ phổ biến trong Python. Giả sử bạn có một danh sách các danh sách và cần phải làm phẳng nó vào một danh sách duy nhất chứa tất cả các mục từ các danh sách lồng nhau ban đầu. Bạn có thể sử dụng bất kỳ cách tiếp cận nào để làm phẳng danh sách trong Python. Ví dụ: bạn có thể sử dụng vòng lặp

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5, như trong mã sau:

>>>

result = (high + low) * num_pairs
2

Ở đây,

num_pairs = (high-low) // 2
75 lấy hai chuỗi làm đối số và trả về sản phẩm DOT tương ứng của chúng. Nếu các chuỗi đầu vào có độ dài khác nhau, thì hàm tăng
num_pairs = (high-low) // 2
61.

Nhúng chức năng vào một chức năng tùy chỉnh cho phép bạn sử dụng lại mã. Nó cũng cung cấp cho bạn cơ hội để đặt tên cho chức năng một cách mô tả để người dùng biết chức năng làm gì chỉ bằng cách đọc tên của nó.

>>>

result = (high + low) * num_pairs
3

Ở đây,

num_pairs = (high-low) // 2
75 lấy hai chuỗi làm đối số và trả về sản phẩm DOT tương ứng của chúng. Nếu các chuỗi đầu vào có độ dài khác nhau, thì hàm tăng
num_pairs = (high-low) // 2
61.

Nhúng chức năng vào một chức năng tùy chỉnh cho phép bạn sử dụng lại mã. Nó cũng cung cấp cho bạn cơ hội để đặt tên cho chức năng một cách mô tả để người dùng biết chức năng làm gì chỉ bằng cách đọc tên của nó.

>>>

result = (high + low) * num_pairs
4

Làm phẳng danh sách các danh sách

Làm phẳng danh sách các danh sách là một nhiệm vụ phổ biến trong Python. Giả sử bạn có một danh sách các danh sách và cần phải làm phẳng nó vào một danh sách duy nhất chứa tất cả các mục từ các danh sách lồng nhau ban đầu. Bạn có thể sử dụng bất kỳ cách tiếp cận nào để làm phẳng danh sách trong Python. Ví dụ: bạn có thể sử dụng vòng lặp

def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5, như trong mã sau:

>>>

result = (high + low) * num_pairs
5

Bên trong

num_pairs = (high-low) // 2
78, vòng lặp lặp lại trên tất cả các danh sách lồng nhau có trong
num_pairs = (high-low) // 2
79. Sau đó, nó kết hợp chúng trong
num_pairs = (high-low) // 2
80 bằng cách sử dụng một hoạt động gán tăng cường (
num_pairs = (high-low) // 2
81). Kết quả là, bạn nhận được một danh sách phẳng với tất cả các mục từ các danh sách lồng nhau ban đầu.

Nhưng hãy giữ! Bạn đã học được cách sử dụng result //= 2 6 để nối các chuỗi trong hướng dẫn này. Bạn có thể sử dụng tính năng đó để làm phẳng danh sách các danh sách như bạn đã làm trong ví dụ trên không? Đúng! Đây là cách: làm thế nào:

Nó thật nhanh! Một dòng mã duy nhất và

num_pairs = (high-low) // 2
83 hiện là một danh sách phẳng. Tuy nhiên, sử dụng
result //= 2
6 dường như không phải là giải pháp nhanh nhất.

Một nhược điểm quan trọng của bất kỳ giải pháp nào ngụ ý sự kết hợp là đằng sau hậu trường, mọi bước trung gian đều tạo ra một danh sách mới. Điều này có thể khá lãng phí về mặt sử dụng bộ nhớ. Danh sách cuối cùng được trả lại chỉ là danh sách được tạo gần đây nhất trong số tất cả các danh sách được tạo ra ở mỗi vòng kết nối. Thay vào đó, sử dụng danh sách hiểu biết rằng bạn tạo và trả về chỉ một danh sách:

Phiên bản mới này của

num_pairs = (high-low) // 2
78 hiệu quả hơn và ít lãng phí hơn về mặt sử dụng bộ nhớ. Tuy nhiên, các toàn diện lồng nhau có thể là một thách thức để đọc và hiểu.

Sử dụng num_pairs = (high-low) // 2 86 có lẽ là cách dễ đọc và pythonic nhất để làm phẳng danh sách danh sách:

Trong phiên bản

num_pairs = (high-low) // 2
78 này, ai đó đang đọc mã của bạn có thể thấy rằng chức năng lặp lại trên mỗi
num_pairs = (high-low) // 2
88 trong
num_pairs = (high-low) // 2
79. Bên trong vòng
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
5 đầu tiên này, nó đã lặp lại trên mỗi
num_pairs = (high-low) // 2
91 trong
num_pairs = (high-low) // 2
88 để cuối cùng đưa ra danh sách
num_pairs = (high-low) // 2
80 mới với
num_pairs = (high-low) // 2
86. Giống như sự hiểu biết từ trước đó, giải pháp này chỉ tạo ra một danh sách trong quy trình. Một lợi thế của giải pháp này là nó rất dễ đọc.

Sử dụng các lựa chọn thay thế cho

result //= 2
6

>>>

result = (high + low) * num_pairs
6

Như bạn đã học,

result //= 2
6 rất hữu ích khi làm việc với các giá trị số nói chung. Tuy nhiên, khi nói đến việc làm việc với các số điểm nổi, Python cung cấp một công cụ thay thế. Trong
num_pairs = (high-low) // 2
97, bạn sẽ tìm thấy một hàm gọi là
num_pairs = (high-low) // 2
98 có thể giúp bạn cải thiện độ chính xác chung của các tính toán dấu phẩy động của bạn.

>>>

result = (high + low) * num_pairs
7

Bạn có thể có một nhiệm vụ mà bạn muốn kết hợp hoặc chuỗi một số lần lặp để bạn có thể làm việc với chúng như một. Đối với kịch bản này, bạn có thể tìm đến hàm

num_pairs = (high-low) // 2
99
result = (high + low) * num_pairs
00.

>>>

result = (high + low) * num_pairs
8

Bạn cũng có thể có một nhiệm vụ mà bạn muốn kết hợp một danh sách các chuỗi. Bạn đã học được trong hướng dẫn này rằng không có cách nào để sử dụng

result //= 2
6 để nối các chuỗi. Chức năng này chỉ được xây dựng để kết hợp chuỗi. Giải pháp thay thế pythonic nhất là sử dụng
num_pairs = (high-low) // 2
46.

>>>

result = (high + low) * num_pairs
9

Ồ! Ví dụ thứ hai là khá đáng ngạc nhiên và hoàn toàn đánh bại

result //= 2
6. Với
result //= 2
6, kết quả là bạn nhận được
result = (high + low) * num_pairs
16. Điều này khá xa so với kết quả chính xác của
result = (high + low) * num_pairs
17, khi bạn nhận được với
num_pairs = (high-low) // 2
98.

Kết nối lặp lại với result = (high + low) * num_pairs 19

Nếu bạn đang tìm kiếm một công cụ tiện dụng để kết hợp hoặc chuỗi một loạt các vòng lặp, thì hãy xem xét sử dụng

result = (high + low) * num_pairs
00 từ
num_pairs = (high-low) // 2
99. Chức năng này có thể lấy nhiều lần lặp và xây dựng một trình lặp lại mang lại các mục từ mục thứ nhất, từ cái thứ hai, v.v.

>>>

result //= 2
0

Khi bạn gọi

result = (high + low) * num_pairs
00, bạn sẽ nhận được một trình lặp của các mục từ các vòng lặp đầu vào. Trong ví dụ này, bạn truy cập các mục liên tiếp từ
def sumrange(low, high, step):
     num_pairs = (high - low) // 2
     result = (high + low) * num_pairs
     return result // step
8 bằng cách sử dụng
result = (high + low) * num_pairs
24. Nếu bạn muốn làm việc với một danh sách thay thế, thì bạn có thể sử dụng
result = (high + low) * num_pairs
25 để tiêu thụ trình lặp và trả về danh sách Python thông thường.

result = (high + low) * num_pairs
00 cũng là một lựa chọn tốt để làm phẳng danh sách các danh sách trong Python:

>>>

result //= 2
1

Để làm phẳng danh sách các danh sách với

result = (high + low) * num_pairs
00, bạn cần sử dụng toán tử giải nén có thể lặp lại (
result = (high + low) * num_pairs
28). Toán tử này giải nén tất cả các vòng lặp đầu vào để
result = (high + low) * num_pairs
00 có thể hoạt động với chúng và tạo bộ lặp tương ứng. Bước cuối cùng là gọi
result = (high + low) * num_pairs
25 để xây dựng danh sách phẳng mong muốn.iterable unpacking operator (
result = (high + low) * num_pairs
28). This operator unpacks all the input iterables so that
result = (high + low) * num_pairs
00 can work with them and generate the corresponding iterator. The final step is to call
result = (high + low) * num_pairs
25 to build the desired flat list.

Dây nối với num_pairs = (high-low) // 2 46

Như bạn đã thấy,

result //= 2
6 không liên kết hoặc tham gia chuỗi. Nếu bạn cần phải làm như vậy, thì công cụ ưa thích và nhanh nhất có sẵn trong Python là
num_pairs = (high-low) // 2
46. Phương pháp này lấy một chuỗi các chuỗi làm đối số và trả về một chuỗi mới, được nối:

>>>

result //= 2
2

Sử dụng

result = (high + low) * num_pairs
34 là cách hiệu quả nhất và pythonic để nối các chuỗi. Ở đây, bạn sử dụng một danh sách các chuỗi làm đối số và xây dựng một chuỗi duy nhất từ ​​đầu vào. Lưu ý rằng
result = (high + low) * num_pairs
34 sử dụng chuỗi mà bạn gọi phương thức làm dấu phân cách trong quá trình ghép. Trong ví dụ này, bạn gọi
result = (high + low) * num_pairs
34 trên một chuỗi bao gồm một ký tự không gian duy nhất (
result = (high + low) * num_pairs
37), do đó các chuỗi gốc từ
result = (high + low) * num_pairs
38 được phân tách bằng khoảng trắng trong chuỗi cuối cùng của bạn.

Sự kết luận

Bây giờ bạn có thể sử dụng chức năng tích hợp Python,

result //= 2
6 để thêm nhiều giá trị số lại với nhau. Hàm này cung cấp một cách hiệu quả, dễ đọc và pythonic để giải quyết các vấn đề tổng trong mã của bạn. Nếu bạn xử lý các tính toán toán học yêu cầu tổng các giá trị số, thì
result //= 2
6 có thể là cứu cánh của bạn.summation problems in your code. If you’re dealing with math computations that require summing numeric values, then
result //= 2
6 can be your lifesaver.

Trong hướng dẫn này, bạn đã học được cách:

  • Tổng các giá trị số bằng các kỹ thuật và công cụ chunggeneral techniques and tools
  • Thêm một số giá trị số một cách hiệu quả bằng cách sử dụng Python từ
    result //= 2
    
    6Python’s
    result //= 2
    
    6
  • Trình tự Concatenate sử dụng
    result //= 2
    
    6
    using
    result //= 2
    
    6
  • Sử dụng
    result //= 2
    
    6 để tiếp cận các vấn đề tổng hợp phổ biếnsummation problems
  • Sử dụng các giá trị phù hợp cho các đối số
    >>> def sum_numbers(numbers):
    ...     total = 0
    ...     for number in numbers:
    ...         total += number
    ...     return total
    ...
    
    >>> sum_numbers([1, 2, 3, 4, 5])
    15
    
    >>> sum_numbers([])
    0
    
    6 và
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> sum([])
    0
    
    0 trong
    result //= 2
    
    6
    >>> def sum_numbers(numbers):
    ...     total = 0
    ...     for number in numbers:
    ...         total += number
    ...     return total
    ...
    
    >>> sum_numbers([1, 2, 3, 4, 5])
    15
    
    >>> sum_numbers([])
    0
    
    6 and
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> sum([])
    0
    
    0 arguments
    in
    result //= 2
    
    6
  • Quyết định giữa
    result //= 2
    
    6 và các công cụ thay thế để tổng hợp và nối các đối tượngalternative tools to sum and concatenate objects

Với kiến ​​thức này, giờ đây bạn có thể thêm nhiều giá trị số lại với nhau theo cách pythonic, dễ đọc và hiệu quả.

Làm thế nào để bạn tổng hợp một chuỗi các số trong Python?

Bây giờ bạn có thể sử dụng SUM hàm tích hợp () của Python để thêm nhiều giá trị số lại với nhau.use Python's built-in function sum() to add multiple numeric values together.

SUM () SUM () trong Python là gì?

Hàm python sum () hàm sum () trả về một số, tổng của tất cả các mục trong một số không thể điều chỉnh được.returns a number, the sum of all items in an iterable.

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

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, điều này phổ biến trong một số tính toán toán học.to calculate the sum of all values in an iterable object. This method is useful when you need the total value of a list of items, which is common in a number of mathematical calculations.

Bạn có thể tổng hợp một danh sách trong Python không?

Hàm SUM () trả về tổng của một IT có thể.SUM () lấy một danh sách (có thể lặp lại) và trả về tổng số của các số trong danh sách.