Skip to main content
 首页 » 编程设计

python之从 Python 代码中获取不正确的输出

2025年05月04日8hnrainll

对于这个函数,我应该读取一个包含 12 个随机数的文件。然后我应该每行输出数字 1,最后程序应该将偶数和赔率分开,然后将它们相加并显示它们的总数。这里的问题是,即使我可以很好地打印数字,总功能最终还是搞砸了,给出了不正确的总数。

def main(): 
 
    infile = open('numbers.txt','r') 
 
    line1 = infile.readline() 
    line2 = infile.readline() 
    line3 = infile.readline() 
    line4 = infile.readline() 
    line5 = infile.readline() 
    line6 = infile.readline() 
    line7 = infile.readline() 
    line8 = infile.readline() 
    line9 = infile.readline() 
    line10 = infile.readline() 
 
    line1 = line1.rstrip('\n') 
    line2 = line2.rstrip('\n') 
    line3 = line3.rstrip('\n') 
    line4 = line4.rstrip('\n') 
    line5 = line5.rstrip('\n') 
    line6 = line6.rstrip('\n') 
    line7 = line7.rstrip('\n') 
    line8 = line8.rstrip('\n') 
    line9 = line9.rstrip('\n') 
    line10 = line10.rstrip('\n') 
 
    print(line1) 
    print(line2) 
    print(line3) 
    print(line4) 
    print(line5) 
    print(line6) 
    print(line7) 
    print(line8) 
    print(line9) 
    print(line10) 
 
    line = infile.readline() 
 
    total = 0 
    evenTotal = 0 
    oddTotal = 0 
 
    while line != '': 
        total += int(line) 
        if int(line) % 2 == 0: 
            evenTotal += int(line) 
        else: 
            oddTotal += int(line) 
        line = infile.readline() 
 
    print("=======================================") 
    print('The total for the even numbers is', evenTotal) 
    print("=======================================") 
    print('The total for the odd numbers is', oddTotal) 
 
    infile.close() 
main() 

这是文件的内容

47 
64 
67 
40 
91 
98 
82 
2 
42 
84 
48 
96 

不知何故,我只得到两个总数的 0。

有人可以帮忙吗?

请您参考如下方法:

open 返回的文件对象维护一个指向您当前在文件中的位置的指针。每次调用 infile.readline() 时,它都会将该指针前进到下一行。

因为在测试代码的过程中,您会提前读取每一行(并打印出来),当您到达后面的计算行值的代码时,您的文件已经到达末尾并且不会神奇地回到文件的开头。

您可以重新打开文件,或者更简单地使用 infile.seek(0)将文件指针返回到文件的开头。