Hướng dẫn why do we use sum in python? - tại sao chúng ta sử dụng tổng trong python?

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

>>> 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
8 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
>>> 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
8 là một công cụ khá tiện dụng cho một lập trình viên Python.

Show

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

>>> 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
8, 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ừ
    >>> 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
    
    8 để thêm một số giá trị số một cách hiệu quảPython’s
    >>> 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
    
    8
    to add several numeric values efficiently
  • Danh sách Concatenate và bộ dữ liệu với
    >>> 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
    
    8
    with
    >>> 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
    
    8
  • Sử dụ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
    
    8 để 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ố trong
    >>> 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
    
    8arguments in
    >>> 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
    
    8
  • Quyết định giữa
    >>> 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
    
    8 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

Kiến thức này sẽ giúp bạn tiếp cận hiệu quả và giải quyết các vấn đề tổng trong mã của bạn bằng cách sử dụ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
8 hoặc các công cụ chuyên dụng và thay thế khác.

Hiểu vấn đề tổng kết

Tóm tắt các giá trị số với nhau là một vấn đề khá phổ biến trong lập trình. Ví dụ: giả sử bạn có một danh sách các số [1, 2, 3, 4, 5] và muốn thêm chúng lại với nhau để tính tổng số tiền của chúng. Với số học tiêu chuẩn, bạn sẽ làm một cái gì đó như thế này:

1 + 2 + 3 + 4 + 5 = 15

Theo như toán học, biểu thức này khá đơn giản. Nó hướng dẫn bạn qua một loạt các bổ sung ngắn cho đến khi bạn tìm thấy tổng của tất cả các số.

Nó có thể thực hiện tính toán cụ thể này bằng tay, nhưng hãy tưởng tượng một số tình huống khác mà nó có thể không quá có thể. Nếu bạn có một danh sách các số đặc biệt dài, việc thêm bằng tay có thể không hiệu quả và dễ bị lỗi. Điều gì xảy ra nếu bạn không biết thậm chí biết có bao nhiêu mặt hàng trong danh sách? Cuối cùng, hãy tưởng tượng một kịch bản trong đó số lượng vật phẩm bạn cần thêm thay đổi một cách linh hoạt hoặc không thể đoán trước.

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

>>> 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
7:

>>>

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

>>> 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
8 và khởi tạo nó thành
>>> 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
9. 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
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 và cập nhật
>>> 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
8 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

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

>>> 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
8 và khởi tạo nó thành
>>> 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
9. 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
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 và cập nhật
>>> 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
8 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

>>> 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
8 và khởi tạo nó thành
>>> 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
9. 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
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 và cập nhật
>>> 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
8 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

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

>>> 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
8 và khởi tạo nó thành
>>> 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
9. 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
>>> sum([1, 2, 3, 4, 5])
15

>>> sum([])
0
0 và cập nhật
>>> 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
8 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

>>> 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
7 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:

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

>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1 là giải pháp dễ đọc nhất có sẵn cho bạn.

Python cung cấp một chức năng tích hợp chuyên dụng để giải quyết vấn đề này. Hàm được gọi là

>>> 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
8 một cách thuận tiện. Vì nó là một chức năng tích hợp, bạn có thể sử dụng nó trực tiếp trong mã của mình mà không cần nhập bất cứ thứ gì.

Bắt đầu với Python từ >>> 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 8

Khả năng đọc là một trong những nguyên tắc quan trọng nhất đằng sau triết lý Python. Trực quan hóa những gì bạn đang yêu cầu một vòng lặp làm khi tổng hợp một danh sách các giá trị. Bạn muốn nó lặp qua một số số, tích lũy chúng trong một biến trung gian và trả lại tổng cuối cùng. Tuy nhiên, có lẽ bạn có thể tưởng tượng một phiên bản tổng kết dễ đọc hơn mà không cần một vòng lặp. Bạn muốn Python lấy một số số và tổng hợp chúng lại với nhau.

Bây giờ hãy nghĩ về cách

>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1 không tổng kết. Sử dụng
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1 được cho là ít dễ đọc hơn và ít đơn giản hơn so với thậm chí giải pháp dựa trên vòng lặp.

Đây là lý do tại sao Python 2.3 đã thêm

>>> 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
8 như một hàm tích hợp để cung cấp một giải pháp pythonic cho vấn đề tổng kết. Alex Martelli đã đóng góp chức năng, ngày nay là cú pháp ưa thích để tổng hợp danh sách các giá trị:

>>>

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

>>> sum([])
0

Ồ! Điều đó gọn gàng, có phải là nó không? Nó đọc giống như tiếng Anh đơn giản và truyền đạt rõ ràng hành động mà bạn đang thực hiện trong danh sách đầu vào. Sử dụ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
8 dễ đọc hơn vòng lặp
>>> 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
7 hoặc cuộc gọi
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1. Không giống như
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1,
>>> 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
8 không tăng
>>> sum([x ** 2 for x in range(1, 6)])
55
4 khi bạn cung cấp một khoảng trống có thể trống. Thay vào đó, nó dễ dàng trả về
>>> 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
9.

Bạn có thể gọi

>>> 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
8 với hai đối số sau:

  1. >>> # Use a list
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> # Use a tuple
    >>> sum((1, 2, 3, 4, 5))
    15
    
    >>> # Use a set
    >>> sum({1, 2, 3, 4, 5})
    15
    
    >>> # Use a range
    >>> sum(range(1, 6))
    15
    
    >>> # Use a dictionary
    >>> sum({1: "one", 2: "two", 3: "three"})
    6
    >>> sum({1: "one", 2: "two", 3: "three"}.keys())
    6
    
    8 là một đối số cần thiết có thể giữ bất kỳ python có thể điều chỉnh được. Các thông thường có thể chứa các giá trị số nhưng cũng có thể chứa danh sách hoặc bộ dữ liệu.
    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], 100)  # Positional argument
    115
    
    >>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
    115
    
    2 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à
    >>> 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
    
    9.
    is an optional argument that can hold an initial value. This value is then added to the final result. It defaults to
    >>> 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
    
    9.

Trong nội bộ,

>>> 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
8 thêm
>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2 cộng với các giá trị trong
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
8 từ trái sang phải. Các giá trị trong đầu vào
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
8 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], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2 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
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
8. 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

>>> 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
8 trong mã của mình.

Đối số cần thiết: >>> # Use a list >>> sum([1, 2, 3, 4, 5]) 15 >>> # Use a tuple >>> sum((1, 2, 3, 4, 5)) 15 >>> # Use a set >>> sum({1, 2, 3, 4, 5}) 15 >>> # Use a range >>> sum(range(1, 6)) 15 >>> # Use a dictionary >>> sum({1: "one", 2: "two", 3: "three"}) 6 >>> sum({1: "one", 2: "two", 3: "three"}.keys()) 6 8

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

>>> 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
8 chung, tái sử dụng và đa hình. Vì tính năng này, bạn có thể sử dụ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
8 với danh sách, bộ dữ liệu, bộ, đối tượng
>>> from decimal import Decimal
>>> from fractions import Fraction

>>> # Sum floating-point numbers
>>> sum([10.2, 12.5, 11.8])
34.5
>>> sum([10.2, 12.5, 11.8, float("inf")])
inf
>>> sum([10.2, 12.5, 11.8, float("nan")])
nan

>>> # Sum complex numbers
>>> sum([3 + 2j, 5 + 6j])
(8+8j)

>>> # Sum Decimal numbers
>>> sum([Decimal("10.2"), Decimal("12.5"), Decimal("11.8")])
Decimal('34.5')

>>> # Sum Fraction numbers
>>> sum([Fraction(51, 5), Fraction(25, 2), Fraction(59, 5)])
Fraction(69, 2)
4 và từ điển:

>>>

>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6

Ồ! Điều đó gọn gàng, có phải là nó không? Nó đọc giống như tiếng Anh đơn giản và truyền đạt rõ ràng hành động mà bạn đang thực hiện trong danh sách đầu vào. Sử dụ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
8 dễ đọc hơn vòng lặp
>>> 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
7 hoặc cuộc gọi
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1. Không giống như
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1,
>>> 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
8 không tăng
>>> sum([x ** 2 for x in range(1, 6)])
55
4 khi bạn cung cấp một khoảng trống có thể trống. Thay vào đó, nó dễ dàng trả về
>>> 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
9.

Bạn có thể gọi

>>> 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
8 với hai đối số sau:

>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
8 là một đối số cần thiết có thể giữ bất kỳ python có thể điều chỉnh được. Các thông thường có thể chứa các giá trị số nhưng cũng có thể chứa danh sách hoặc bộ dữ liệu.

>>>

>>> sum([x ** 2 for x in range(1, 6)])
55

Ồ! Điều đó gọn gàng, có phải là nó không? Nó đọc giống như tiếng Anh đơn giản và truyền đạt rõ ràng hành động mà bạn đang thực hiện trong danh sách đầu vào. Sử dụ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
8 dễ đọc hơn vòng lặp
>>> 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
7 hoặc cuộc gọi
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1. Không giống như
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1,
>>> 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
8 không tăng
>>> sum([x ** 2 for x in range(1, 6)])
55
4 khi bạn cung cấp một khoảng trống có thể trống. Thay vào đó, nó dễ dàng trả về
>>> 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
9.

>>>

>>> sum(x ** 2 for x in range(1, 6))
55

Ồ! Điều đó gọn gàng, có phải là nó không? Nó đọc giống như tiếng Anh đơn giản và truyền đạt rõ ràng hành động mà bạn đang thực hiện trong danh sách đầu vào. Sử dụ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
8 dễ đọc hơn vòng lặp
>>> 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
7 hoặc cuộc gọi
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1. Không giống như
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1,
>>> 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
8 không tăng
>>> sum([x ** 2 for x in range(1, 6)])
55
4 khi bạn cung cấp một khoảng trống có thể trống. Thay vào đó, nó dễ dàng trả về
>>> 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
9.

Bạn có thể gọi >>> 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 8 với hai đối số sau:

>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
8 là một đối số cần thiết có thể giữ bất kỳ python có thể điều chỉnh được. Các thông thường có thể chứa các giá trị số nhưng cũng có thể chứa danh sách hoặc bộ dữ liệu.

>>>

>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115

Ồ! Điều đó gọn gàng, có phải là nó không? Nó đọc giống như tiếng Anh đơn giản và truyền đạt rõ ràng hành động mà bạn đang thực hiện trong danh sách đầu vào. Sử dụ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
8 dễ đọc hơn vòng lặp
>>> 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
7 hoặc cuộc gọi
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1. Không giống như
>>> # Use a list
>>> sum([1, 2, 3, 4, 5])
15

>>> # Use a tuple
>>> sum((1, 2, 3, 4, 5))
15

>>> # Use a set
>>> sum({1, 2, 3, 4, 5})
15

>>> # Use a range
>>> sum(range(1, 6))
15

>>> # Use a dictionary
>>> sum({1: "one", 2: "two", 3: "three"})
6
>>> sum({1: "one", 2: "two", 3: "three"}.keys())
6
1,
>>> 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
8 không tăng
>>> sum([x ** 2 for x in range(1, 6)])
55
4 khi bạn cung cấp một khoảng trống có thể trống. Thay vào đó, nó dễ dàng trả về
>>> 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
9.

Bạn có thể gọi

>>> 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
8 với hai đối số sau:

>>> # Use a list >>> sum([1, 2, 3, 4, 5]) 15 >>> # Use a tuple >>> sum((1, 2, 3, 4, 5)) 15 >>> # Use a set >>> sum({1, 2, 3, 4, 5}) 15 >>> # Use a range >>> sum(range(1, 6)) 15 >>> # Use a dictionary >>> sum({1: "one", 2: "two", 3: "three"}) 6 >>> sum({1: "one", 2: "two", 3: "three"}.keys()) 6 8 là một đối số cần thiết có thể giữ bất kỳ python có thể điều chỉnh được. Các thông thường có thể chứa các giá trị số nhưng cũng có thể chứa danh sách hoặc bộ dữ liệu.

>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2 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à
>>> 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
9.

Dưới đây là một vài ví dụ về việc sử dụ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
8 với các giá trị của các loại số khác nhau:

>>>

>>> from decimal import Decimal
>>> from fractions import Fraction

>>> # Sum floating-point numbers
>>> sum([10.2, 12.5, 11.8])
34.5
>>> sum([10.2, 12.5, 11.8, float("inf")])
inf
>>> sum([10.2, 12.5, 11.8, float("nan")])
nan

>>> # Sum complex numbers
>>> sum([3 + 2j, 5 + 6j])
(8+8j)

>>> # Sum Decimal numbers
>>> sum([Decimal("10.2"), Decimal("12.5"), Decimal("11.8")])
Decimal('34.5')

>>> # Sum Fraction numbers
>>> sum([Fraction(51, 5), Fraction(25, 2), Fraction(59, 5)])
Fraction(69, 2)

Ở đây, trước tiên bạn sử dụ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
8 với số điểm nổi. Nó đáng chú ý là hành vi của chức năng khi bạn sử dụng các biểu tượng đặc biệ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
19 và
>>> 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
20 trong các cuộc gọ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
21 và
>>> 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
22. Biểu tượng đầu tiên đại diện cho một giá trị vô hạn, do đó
>>> 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
8 trả về
>>> 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
19. Biểu tượng thứ hai đại diện cho các giá trị NAN (không phải số). Vì bạn có thể thêm các số với những người không phải là người, bạn sẽ nhận được
>>> 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
20.floating-point numbers. It’s worth noting the function’s behavior when you use the special symbols
>>> 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
19 and
>>> 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
20 in the calls
>>> 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
21 and
>>> 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
22. The first symbol represents an infinite value, so
>>> 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
8 returns
>>> 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
19. The second symbol represents NaN (not a number) values. Since you can’t add numbers with non-numbers, you get
>>> 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
20 as a result.

Các ví dụ khác tổng số lặp của các 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
14,
>>> 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
27 và
>>> 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
28. Trong mọi trường hợp,
>>> 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
8 trả về tổng tích lũy kết quả bằng cách sử dụng loại số thích hợp.

Trình tự nối

Mặc dù

>>> 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
8 chủ yếu nhằm hoạt động trên các giá trị số, bạn cũng có thể sử dụng hàm để nối các chuỗi như danh sách và bộ dữ liệu. Để làm điều đó, bạn cần cung cấp một giá trị phù hợp cho
>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2:

>>>

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

Ở đây, trước tiên bạn sử dụ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
8 với số điểm nổi. Nó đáng chú ý là hành vi của chức năng khi bạn sử dụng các biểu tượng đặc biệ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
19 và
>>> 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
20 trong các cuộc gọ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
21 và
>>> 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
22. Biểu tượng đầu tiên đại diện cho một giá trị vô hạn, do đó
>>> 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
8 trả về
>>> 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
19. Biểu tượng thứ hai đại diện cho các giá trị NAN (không phải số). Vì bạn có thể thêm các số với những người không phải là người, bạn sẽ nhận được
>>> 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
20.

Các ví dụ khác tổng số lặp của các 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
14,
>>> 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
27 và
>>> 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
28. Trong mọi trường hợp,
>>> 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
8 trả về tổng tích lũy kết quả bằng cách sử dụng loại số thích hợ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
1

Ở đây, trước tiên bạn sử dụ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
8 với số điểm nổi. Nó đáng chú ý là hành vi của chức năng khi bạn sử dụng các biểu tượng đặc biệ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
19 và
>>> 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
20 trong các cuộc gọ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
21 và
>>> 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
22. Biểu tượng đầu tiên đại diện cho một giá trị vô hạn, do đó
>>> 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
8 trả về
>>> 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
19. Biểu tượng thứ hai đại diện cho các giá trị NAN (không phải số). Vì bạn có thể thêm các số với những người không phải là người, bạn sẽ nhận được
>>> 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
20.

Các ví dụ khác tổng số lặp của các 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 14, >>> 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 27 và >>> 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 28. Trong mọi trường hợp, >>> 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 8 trả về tổng tích lũy kết quả bằng cách sử dụng loại số thích hợp.

Trình tự nối

Mặc dù

>>> 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
8 chủ yếu nhằm hoạt động trên các giá trị số, bạn cũng có thể sử dụng hàm để nối các chuỗi như danh sách và bộ dữ liệu. Để làm điều đó, bạn cần cung cấp một giá trị phù hợp cho
>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2:

Trong các ví dụ này, bạn sử dụ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
8 để kết hợp danh sách và bộ dữ liệu. Đây là một tính năng thú vị mà bạn có thể sử dụng để làm phẳng danh sách các danh sách hoặc một bộ dữ liệu. Yêu cầu chính cho các ví dụ này hoạt động là chọn một giá trị phù hợp cho
>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2. Ví dụ: nếu bạn muốn kết hợp danh sách, thì
>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2 cần phải giữ một danh sách.

Trong các ví dụ trên, >>> 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 8 đang thực hiện một hoạt động nối, do đó, nó chỉ hoạt động với các loại trình tự hỗ trợ kết hợp, ngoại trừ các chuỗi:

Khi bạn cố gắng sử dụ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
8 để nối các chuỗi, bạn sẽ nhận được
>>> sum([x ** 2 for x in range(1, 6)])
55
4. Như thông điệp ngoại lệ cho thấy, bạn nên sử dụng
>>> 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
38 để nối các chuỗi trong Python. Bạn sẽ thấy các ví dụ về việc sử dụng phương pháp này sau này khi bạn truy cập phần sử dụng các lựa chọn thay thế cho
>>> 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
8.

Thực hành với Python từ

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

>>>

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

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

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

>>> 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
8 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.average, is the total sum of the values divided by the number of values, or data points, in the sample.

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], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2 để 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

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

>>>

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

Bằng cách sử dụng

>>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
115

>>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
115
2, 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

>>>

>>> 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
4

Bên 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
52, trước tiên bạn kiểm tra xem mẫu đầu vào có bất kỳ điểm dữ liệu nào không. Nếu không, thì bạn sẽ tăng 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
53 với một thông điệp mô tả. Trong ví dụ này, bạn sử dụng toán tử Walrus để lưu trữ số lượng điểm dữ liệu trong biế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
54 để bạn giành chiến thắng cần phải gọi lạ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
49. Câu lệnh trả về tính toán trung bình số học của mẫu và gửi lại cho mã gọi.

Lưu ý rằng khi bạn gọ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
52 với một mẫu thích hợp, bạn sẽ nhận được giá trị trung bình mong muốn. Nếu bạn gọ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
52 với một mẫu trống, thì bạn sẽ nhận được
>>> 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
53 như mong đợi.

Tìm sản phẩm chấm của hai chuỗi

Một vấn đề khác bạn có thể giải quyết bằng cách sử dụ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
8 là tìm sản phẩm DOT của hai chuỗi có độ dài bằng nhau của các giá trị số. Sản phẩm DOT là tổng đại số của các sản phẩm của mỗi cặp giá trị trong các chuỗi đầu vào. Ví dụ: nếu bạn có các chuỗi (1, 2, 3) và (4, 5, 6), thì bạn có thể tính toán sản phẩm DOT của họ bằng tay bằng cách sử dụng bổ sung và nhân:

1 × 4 + 2 × 5 + 3 × 6 = 32

Để trích xuất các cặp giá trị liên tiếp từ các chuỗi đầu vào, bạn có thể sử dụng

>>> 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
60. Sau đó, bạn có thể sử dụng biểu thức máy phát để nhân mỗi cặp giá trị. Cuối 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
8 có thể tổng hợp các sản phẩ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
5

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
60, bạn tạo một danh sách các bộ dữ liệu với các giá trị từ mỗi chuỗi đầu vào. Các vòng biểu thức của trình tạo trên mỗi tuple trong khi nhân các cặp giá trị liên tiếp được sắp xếp trước đó bở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
60. Bước cuối cùng là thêm các sản phẩm với nhau bằng cách sử dụ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
8.

Mã trong ví dụ trên hoạt động. Tuy nhiên, sản phẩm DOT được xác định cho các chuỗi có độ dài bằng nhau, vậy điều gì xảy ra nếu bạn cung cấp các chuỗi với các độ dài khác nhau? Trong trường hợ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
60 bỏ qua các giá trị bổ sung từ chuỗi dài nhất, dẫn đến kết quả không chính xác.

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

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

>>>

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

Ở đây,

>>> 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
67 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
>>> 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
53.

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

>>> 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
7, như trong mã sau:

>>>

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

Bên 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
70, vòng lặp lặp lại trên tất cả các danh sách lồng nhau có 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
71. Sau đó, nó kết hợp chúng 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
72 bằng cách sử dụng một hoạt động gán tăng cường (
>>> 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
73). 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

>>> 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
8 để 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:

>>>

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

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

>>> 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
75 hiện là một danh sách phẳng. Tuy nhiên, sử dụ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
8 không có vẻ 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:

>>>

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

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

>>> 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
70 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

>>> 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
78 có lẽ là cách dễ đọc và pythonic nhất để làm phẳng danh sách danh sách:

>>>

>>> 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
0

Trong phiên bả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
70 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
>>> 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
80 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
71. Bên trong vòng
>>> 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
7 đầu tiên này, nó đã lặp lại trên mỗ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
83 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
80 để cuối cùng đưa ra danh sách
>>> 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
72 mới 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
78. 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 >>> 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 8

Như bạn đã học,

>>> 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
8 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
>>> 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
89, bạn sẽ tìm thấy một hàm gọi 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
90 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.

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 chức năng mô -đun

>>> 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
91
>>> 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
92.

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

>>> 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
8 để 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
>>> 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
38.

Tổng số điểm nổ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 95

Nếu mã của bạn liên tục tổng số các số điểm nổi với

>>> 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
8, thì bạn nên xem xét sử dụng
>>> 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
95 thay thế. Hàm này thực hiện các tính toán dấu phẩy động cẩn thận hơn
>>> 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
8, giúp cải thiện độ chính xác của tính toán của bạn.

Theo tài liệu của mình,

>>> 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
90, tránh mất độ chính xác bằng cách theo dõi nhiều khoản tiền trung gian. Tài liệu cung cấp ví dụ sau:

>>>

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

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

>>>

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

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

>>>

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

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

>>>

>>> 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
4

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

Trong các ví dụ này, cả hai chức năng trả về cùng một kết quả. Điều này là do sự bất khả thi của việc thể hiện chính xác cả hai giá trị >>> 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 02 và >>> 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 03 trong điểm nổi nhị phân:

Tuy nhiên, không giống như

>>> 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
8,
>>> 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
90 có thể giúp bạn giảm sự lan truyền lỗi điểm nổi khi bạn thêm các số rất lớn và rất nhỏ lại với nhau:

>>>

>>> 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
5

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

Trong các ví dụ này, cả hai chức năng trả về cùng một kết quả. Điều này là do sự bất khả thi của việc thể hiện chính xác cả hai giá trị

>>> 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
02 và
>>> 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
03 trong điểm nổi nhị phân:

>>>

>>> 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
6

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:iterable unpacking operator (
>>> 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
20). This operator unpacks all the input iterables so that
>>> 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
92 can work with them and generate the corresponding iterator. The final step is to call
>>> 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
17 to build the desired flat list.

Trong các ví dụ này, cả hai chức năng trả về cùng một kết quả. Điều này là do sự bất khả thi của việc thể hiện chính xác cả hai giá trị >>> 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 02 và >>> 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 03 trong điểm nổi nhị phân:

Tuy nhiên, không giống như

>>> 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
8,
>>> 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
90 có thể giúp bạn giảm sự lan truyền lỗi điểm nổi khi bạn thêm các số rất lớn và rất nhỏ lại với nhau:

>>>

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

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
90, bạn nhận được kết quả chính xác hơn. Tuy nhiên, bạn nên lưu ý rằng
>>> 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
90 không giải quyết được lỗi đại diện trong số học dấu phẩy động. Ví dụ sau đây khám phá giới hạn này:

Trong các ví dụ này, cả hai chức năng trả về cùng một kết quả. Điều này là do sự bất khả thi của việc thể hiện chính xác cả hai giá trị >>> 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 02 và >>> 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 03 trong điểm nổi nhị phân:

Tuy nhiên, không giống như

>>> 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
8,
>>> 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
90 có thể giúp bạn giảm sự lan truyền lỗi điểm nổi khi bạn thêm các số rất lớn và rất nhỏ lại với nhau:summation problems in your code. If you’re dealing with math computations that require summing numeric values, then
>>> 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
8 can be your lifesaver.

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

>>> 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
8. Với
>>> 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
8, kết quả là bạn nhận được
>>> 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
08. Điều này khá xa so với kết quả chính xác của
>>> 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
09, khi bạn nhận được 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
90.

  • Kết nối lặp lại với
    >>> 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
    
    11general techniques and tools
  • 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
    >>> 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
    
    92 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
    
    91. 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.Python’s
    >>> 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
    
    8
  • Khi bạn gọ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
    
    92, 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ừ
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> sum([])
    0
    
    0 bằng cách sử dụ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
    
    16. 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
    >>> 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
    
    17 để tiêu thụ trình lặp và trả về danh sách Python thông thường.
    using
    >>> 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
    
    8
  • >>> 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
    
    92 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:summation problems
  • Sử dụng các giá trị phù hợp cho các đối số
    >>> # Use a list
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> # Use a tuple
    >>> sum((1, 2, 3, 4, 5))
    15
    
    >>> # Use a set
    >>> sum({1, 2, 3, 4, 5})
    15
    
    >>> # Use a range
    >>> sum(range(1, 6))
    15
    
    >>> # Use a dictionary
    >>> sum({1: "one", 2: "two", 3: "three"})
    6
    >>> sum({1: "one", 2: "two", 3: "three"}.keys())
    6
    
    8 và
    >>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
    115
    
    >>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
    115
    
    2 trong
    >>> 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
    
    8
    >>> # Use a list
    >>> sum([1, 2, 3, 4, 5])
    15
    
    >>> # Use a tuple
    >>> sum((1, 2, 3, 4, 5))
    15
    
    >>> # Use a set
    >>> sum({1, 2, 3, 4, 5})
    15
    
    >>> # Use a range
    >>> sum(range(1, 6))
    15
    
    >>> # Use a dictionary
    >>> sum({1: "one", 2: "two", 3: "three"})
    6
    >>> sum({1: "one", 2: "two", 3: "three"}.keys())
    6
    
    8 and
    >>> sum([1, 2, 3, 4, 5], 100)  # Positional argument
    115
    
    >>> sum([1, 2, 3, 4, 5], start=100)  # Keyword argument
    115
    
    2 arguments
    in
    >>> 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
    
    8
  • Quyết định giữa
    >>> 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
    
    8 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ả.

Tổng số được sử dụng cho trong Python?

Định nghĩa và cách sử dụng.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.

Sum += ý tôi là gì trong Python?

sum += i giống như.sum = sum + i;Bạn đang nói: Set Set Sum bằng với chính nó cộng với i.Có lý?Nó chỉ là ký hiệu ngắn hơn.Set sum equal to itself plus i.” Make sense? It's just shorter notation.

Tổng số loạt trong Python là gì?

n = int (input ("Nhập số của các điều khoản:")) x = int (input ("Nhập giá trị của x:")) sum1 = 1 cho i trong phạm vi (2, n+1): sum1 = sum1+.sum1=sum1+((x**i)/i) print("The sum of series is",round(sum1,2))

Bạn có thể sử dụng Sum như một biến trong Python không?

Sum được coi là từ khóa Python và không nên được sử dụng làm tên biến.should not be used as a variable name.