Python:识别快乐数字时忽略空行

2024-10-08 22:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

这个任务(来自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: ''

这让我觉得忽略空行是不成功的。我走对了吗?如果是这样,我应该对代码做什么更改?你知道吗

谢谢你的帮助!你知道吗


Tags: intestforifsys数字elsenum
1条回答
网友
1楼 · 发布于 2024-10-08 22:29:22

为了确保不处理空行和新行,只需添加:

if num.strip():
    num = num.rstrip('\n')

    # DO SOMETHING HERE...
    # ...

所以你会得到:

import sys
test_cases = open(sys.argv[1], 'r')
for num in test_cases:
    if num.strip():
        num = num.rstrip('\n')

        # DO SOMETHING HERE...
        # ...

test_cases.close()

相关问题 更多 >

    热门问题