这个任务(来自codeeval)是读取一个有几个不同数字的文件,如果是快乐数字则打印1,如果不是快乐数字则打印0。任务的一部分是忽略项目(num
),如果它是一个空行。这是我的密码:
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: ''
这让我觉得忽略空行是不成功的。我走对了吗?如果是这样,我应该对代码做什么更改?你知道吗
谢谢你的帮助!你知道吗
为了确保不处理空行和新行,只需添加:
所以你会得到:
相关问题 更多 >
编程相关推荐