2013-02-21 41 views
0
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 

這就是它看起來像在空閒狀態。

>>> ================================ 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

在文件末尾,f.readline()將返回一個空字符串。因此,你應該測試空字符串:

while arv: 

,而不是測試對arv != " "

+0

感謝您的幫助! – user2096705 2013-02-21 20:34:12

相關問題