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
答案 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 ......