任務(來自codeeval)將讀取具有幾個不同數字的文件,如果它是開心數字,則打印1;如果不是開心數字,則打印0。部分任務是忽略該項目(num
),如果它是空行。這裏是我的代碼:Python:識別快樂數字時忽略空行
import sys
test_cases = open(sys.argv[1], 'r')
for num in test_cases:
if num=="":
pass
else:
liszt=[]
while num>1:
newnum=str(num)
total=0
for i in newnum:
total+=int(i)**2
if total not in liszt:
liszt.append(total)
num=total
else:
print 0
break
else:
print 1
test_cases.close()
我得到引用total+=int(i)**2
線,說這句話的錯誤信息:這讓我覺得我不是成功地忽略空行
ValueError: invalid literal for int() with base 10: ''
。我在正確的軌道上嗎?如果是這樣,我應該對代碼做些什麼改變?
感謝您的幫助!
我想你想'繼續'而不是'通過'。 – squiguy
只需'打印num',看看發生了什麼...... – alfasin
@squiguy兩者都會在這裏做同樣的事情。 – Nabla