2016-07-08 7 views
0
k = 1 
M = input("Enter an integer: ") 
for M in range(k,M): 
    s = 1/float(M) 
    print sum(s) 

sの合計を得るにはどうすればよいですか?私は、エラーメッセージが出続ける:Pythonで複数の数値の合計を取得する方法

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

*合計*

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

例えば

?単一の要素の? – soon

+0

取得したエラーメッセージ全体を入力してください – Nikem

答えて

3

sは、それがフロートであるリストではありません。代わりにこの方法を試してください。

k = 1 
M = input("Enter an integer:") 
print sum(1/float(s) for s in range(k, M)) 
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 
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)を追加する必要があります。

0

次のコードで試すことができます。

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

どのように動作しますか?それは入力を要求し、操作を行います。ループの各サイクルの結果はresultという変数に追加されます。

シンプルに、あなたのために働くことを願っています。

0

私は1/1.0 + ... + 1/yourInputの合計を数える必要があると思います。

以下の方法を使用できます。 getSum(10)、あなたが出力を取得します:何の... 2.828を

関連する問題