如何在Python中获取多个数字的总和

时间:2016-07-08 05:20:10

标签: python python-2.7

k = 1
M = input("Enter an integer: ")
for M in range(k,M):
    s = 1/float(M)
    print sum(s)

如何获得s的总和?我不断收到错误消息:

File "C:/Python27/summation.py", line 7, in <module>
  print sum(s)
TypeError: 'float' object is not iterable

5 个答案:

答案 0 :(得分:3)

s不是浮动列表。试试这个:

k = 1
M = input("Enter an integer:")
print sum(1/float(s) for s in range(k, M))

答案 1 :(得分:1)

试试这个:

s=[]
k = 1
M = input("Enter an integer: ")
for M in range(k,M):
    s.append(1/float(M))
print(s)
print(sum(s))

输出(M = 10):

[1.0, 0.5, 0.3333333333333333, 0.25, 0.2, 0.16666666666666666, 0.14285714285714285, 0.125, 0.1111111111111111]
2.8289682539682537

答案 2 :(得分:0)

在此源代码中,值M被覆盖两次。因此,如果在for循环中更改M,则可以得到s的总和。 固定的男女同校在下面。

k = 1
M = input("Enter an integer: ")
S = []
for V in range(k,M): S.append(V)
print sum(s)

此外,如果您想获得一个列表总和,您必须创建一个值列表并在列表中附加值(V)。

答案 3 :(得分:0)

您可以尝试使用以下代码:

result = 0
k = 1
M = int(input("Enter an integer: "))
for M in range(k, M):
    result += (1 / float(M))
print(result)

它是如何工作的?它会要求输入,然后进行操作。循环的每个循环的结果将被添加到名为result的变量中。

简单,希望它适合你。

答案 4 :(得分:0)

我猜你需要计算1 / 1.0 + ... + 1 / yourInput的总和。

您可以使用以下方法。

def getSum(yourInput):
    scoreLst = [1/float(e) for e in range(1, yourInput)]
    return sum(scoreLst)

例如:getSum(10),你将获得输出:2.828 ......