Python 我得到一个错误,但我的程序工作和行为与预期一致。最后只是一条不需要的错误消息

Python 我得到一个错误,但我的程序工作和行为与预期一致。最后只是一条不需要的错误消息,python,python-3.x,literals,divide,Python,Python 3.x,Literals,Divide,这是我的代码,它用来找出这个数字是否除以2。它从每一行的文件中读取数字 arvud.txt 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)

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

arvud.txt

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()
这就是空闲时的样子

10
2
1
6
17
36665
1000000001
25832864968
重新启动================================ >>> paarisarv上的Arv 10。 paarisarv上的Arv 2。 帕里图Arv上的Arv 1。 paarisarv上的Arv 6。 帕里图Arv上的Arv 17。 paaritu Arv上的Arv 36665。 帕里图Arv上的Arv 100000001。 paarisarv上的Arv 25832864968。 回溯(最近一次呼叫最后一次): 文件“C:\Python33\9.veebruar\2.kodutö1paarispaaritu.py”,第8行,在 如果int(arv)%2>0: ValueError:基数为10的int()的文本无效:“” >>>
我需要添加更多的文本。。。grrhh。我只是想知道如何绕过这个。我是这个项目的新手,我真的很想得到一些帮助。谢谢大家!

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

>>> ================================ 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: ''
>>> 
而不是针对
arv!=“”

while arv: