在python中将float转换为sum

时间:2015-06-26 21:30:48

标签: python range

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必须是整数

我知道使用范围是一个错误,我应该使用什么而不是范围?

2 个答案:

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