2016-06-13 3 views
0

数字のリストの合計が含まれているリストを作成しようとしていますが、最初の数字を何も追加せずに表示したい場合は、次のようにしてください:数字が正しく追加されない

入力
0.1
0.3
0.2
0.4
0.2

所望の出力
0.1

:私はここに
0.4
0.6
1.0
1.2

を取得しています 0.4
0.6
1.0
1.2

出力は、私が働いているコードです

open('widthdepth1.txt','w').writelines([ line for line in open("Test1.txt") if "WIDTH" in line or "DEPTH" in line]) 

for line in open("widthdepth1.txt"): 
line = line.strip("") 
parts = line.split(":") 
category = parts[0] 
value = parts[1] 

with open("widthdepth1.txt") as f: 
width = [line.split(":")[1] for line in f if "WIDTH" in line] 
widthtotal = float(width[0]) 
h = open("WidthValue1.txt", "w") 
for line in width[1:19]: 
widthtotal += float(line) 
h.write(str("%0.4f" %widthtotal)+"\n") 
print ("%0.4f" %widthtotal) 

私はPythonには新しいので、どんな助けでも大歓迎です。ループが始まる前に

+1

インデントを修正してください。 – zondo

答えて

1
widthtotal = float(width[0]) 
h = open("WidthValue1.txt", "w") 
for line in width[1:19]: 
    widthtotal += float(line) 

widthtotalはすでに0.1が含まれており、あなたが何かを印刷する前に0.3は、それに追加されます。したがって、0.1が印刷されないことはそれほど驚くべきことではありません。 widthtotalをゼロに初期化し、代わりにwidthコレクション全体を反復処理してみてください。

widthtotal = 0 
h = open("WidthValue1.txt", "w") 
for line in width: 
    widthtotal += float(line) 
+0

ありがとうございました!とても有難い。 –

関連する問題