Python 求和程序

Python 求和程序,python,function,integer,sum,Python,Function,Integer,Sum,我正在尝试创建一个简单的函数,该函数将接受给定0中整数的求和数。例如,如果用户输入整数3,结果将是6,因为0+1+2+3=6 做这件事最好/最有效的方法是什么 最后,我想创建一个循环,用于列表,用户输入列表[4,5,6],函数返回[10,15,16] 提前谢谢 对于单个输入,您可以使用 def summer(n): # Create a list of numbers from 0 to n. # The range function is an end-exclusive

我正在尝试创建一个简单的函数,该函数将接受给定0中整数的求和数。例如,如果用户输入整数3,结果将是6,因为0+1+2+3=6

做这件事最好/最有效的方法是什么

最后,我想创建一个循环,用于列表,用户输入列表[4,5,6],函数返回[10,15,16]


提前谢谢

对于单个输入,您可以使用

def summer(n):
     # Create a list of numbers from 0 to n.
     # The range function is an end-exclusive range
     return sum(range(n+1))
对于多个输入,使用
map
功能

def multisummer(ns):
    return map(summer, ns)

对于单个输入,您可以使用

def summer(n):
     # Create a list of numbers from 0 to n.
     # The range function is an end-exclusive range
     return sum(range(n+1))
对于多个输入,使用
map
功能

def multisummer(ns):
    return map(summer, ns)

求和函数在这里很有用

def findsum(x):
    # The 0 is optional, but it makes it clear that you are starting from 0.
    return sum(range(0, x + 1))
例如:

>>> findsum(6)
21
>>> mysum2([4, 5, 6, 10000000000000])
[10, 15, 21, 50000000000005000000000000]
>>> 

求和函数在这里很有用

def findsum(x):
    # The 0 is optional, but it makes it clear that you are starting from 0.
    return sum(range(0, x + 1))
例如:

>>> findsum(6)
21
>>> mysum2([4, 5, 6, 10000000000000])
[10, 15, 21, 50000000000005000000000000]
>>> 
时间复杂度:
O(n)

结果:[10,15,21]

时间复杂度:
O(n)

结果:[10,15,21]


存在一个具有恒定时间(而非线性时间)的封闭形式的解,它将比任何迭代解快得多。
/
divide操作符强制生成一个整数结果(如果您使用的是Python 3)

如果要将其应用于列表,可以使用
map

def mysum2(li):
    return map(mysum, li)
或者,您可以直接执行此操作,而无需使用
mysum
(这将是最快的):

与迭代解相比,闭式解的值要大得多。例如:

>>> findsum(6)
21
>>> mysum2([4, 5, 6, 10000000000000])
[10, 15, 21, 50000000000005000000000000]
>>> 

使用求和的解决方案在这种情况下永远不会返回结果。

存在一个具有恒定时间(而非线性时间)的封闭形式的解决方案,它将比任何迭代解决方案快得多。
/
divide操作符强制生成一个整数结果(如果您使用的是Python 3)

如果要将其应用于列表,可以使用
map

def mysum2(li):
    return map(mysum, li)
或者,您可以直接执行此操作,而无需使用
mysum
(这将是最快的):

与迭代解相比,闭式解的值要大得多。例如:

>>> findsum(6)
21
>>> mysum2([4, 5, 6, 10000000000000])
[10, 15, 21, 50000000000005000000000000]
>>> 

对于这种情况,使用
sum
的解决方案将永远不会返回结果。

您似乎想要使用函数。您似乎想要使用函数。这甚至不接近于“最好/最有效的方法”。这甚至不接近于“最好/最有效的方法”。这甚至不接近于“实现这一点的最佳/最有效方法”。但这不是问题。告诉我,你的函数为
findsum(1000000000)
提供了什么结果?这甚至还不接近“实现这一点的最佳/最有效方法”。但这不是问题。告诉我,你的函数为
findsum(1000000000)提供了什么结果