我收到错误,但我的程序工作并按预期运行。最后只是一个不需要的错误消息

时间:2013-02-21 19:21:40

标签: python python-3.x literals divide

f = open("arvud.txt", "r")
arv = f.readline()
arv = arv.strip()

while arv != " ":
    if int(arv)%2 > 0:
        print("Arv " + str(arv) + " on paaritu arv.")
    else:
        print("Arv " + str(arv) + " on paarisarv.")
    arv = f.readline()
    arv = arv.strip()

这是我的代码,它可以找出数字是否除以2。它从每行的文件中读取数字。

arvud.txt

10
2
1
6
17
36665
1000000001
25832864968

这就像IDLE一样。

>>> ================================ RESTART ================================
>>> 
Arv 10 on paarisarv.
Arv 2 on paarisarv.
Arv 1 on paaritu arv.
Arv 6 on paarisarv.
Arv 17 on paaritu arv.
Arv 36665 on paaritu arv.
Arv 1000000001 on paaritu arv.
Arv 25832864968 on paarisarv.
Traceback (most recent call last):
  File "C:\Python33\9.veebruar\2. kodutöö\1paarispaaritu.py", line 8, in <module>
    if int(arv)%2 > 0:
ValueError: invalid literal for int() with base 10: ''
>>> 

我需要添加更多文字...... grrhh。我只是需要帮助来解决这个问题。我是这个程序的新手,我真的希望得到一些帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

在文件末尾,f.readline()将返回一个空字符串。因此,您应该测试一个空字符串:

while arv:

而非针对arv != " "进行测试。