fname = input("Enter file name: ")
count=0
fh = open(fname)
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
count=count+1
halo=line.find("0")
gh=line[halo:]
tg=gh.rstrip()
ha=float(tg)
total=0
for value in range(ha):
total=total+value
print total
它就像文件ok中的十进制数列表
0.1235
0.1236
0.1678
我将它转换为浮点数,其中'tg'没有像列表一样的数组
ha=float(tg)
total=0
for value in range(ha):
total=total+value
print total
错误:start必须是整数
我知道使用范围是一个错误,我应该使用什么而不是范围?
答案 0 :(得分:1)
如果你想获得浮点数的总和,只需使用代码:
fname = input("Enter file name: ")
count = 0
total = 0
fh = open(fname)
for line in fh:
if not line.startswith("X-DSPAM-Confidence:"): continue
count += 1
halo = line.find("0")
gh = line[halo:]
tg = gh.rstrip()
ha = float(tg)
total += ha
print total
答案 1 :(得分:0)
您将一个浮动作为参数传递给range
,这没有意义。当n是范围的唯一参数时,range
返回包含n个元素的列表。例如:
>>> range(3)
[0, 1, 2]
所以你可以看到浮点数的范围没有意义。
如果我正确理解您的代码,我认为您想要替换:
for value in range(ha):
total=total+value
通过
total += ha
另外一点,并且尽量不要过于迂腐,我对你的代码违反PEP 8的原则印象深刻。你可能认为这不是什么大不了的事,但如果你关心,我会建议你阅读它(https://www.python.org/dev/peps/pep-0008/)