builtins.TypeError:“int”类型的对象没有len()

2024-09-24 22:22:37 发布

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

def printsection1(animals, station1, station2):
    animals=['a01', 'a02', 'a03', 'a04', 'a05']
    station1={'a04': 5, 'a05': 1, 'a03': 6, 'a01': 2}
    station2={'a04': 5, 'a02': 3, 'a03': 4, 'a01': 1}    

    print('Number of times each animal visited each station :')
    print('Animal Id'+' '*11+'Station 1'+' '*11+'Station 2'+'           ')

    #preparing animal station1 and station2
    for name in animals:
        if name in station1:
            visit=str(station1.get(name))
        else:
            visit=0
        if name in station2:
            visit2=str(station2.get(name))
        else:
            visit2=0

        space=str((20-len(visit))*' ')


        print(name+' '*17+str(visit)+space+str(visit2))
    print('='*60)

实际输出,我得到的输出:

Animal Id           Station 1           Station 2           
a01                 2                   1

错误:

builtins.TypeError: object of type 'int' has no len()

所需输出:

Number of times each animal visited each station :
Animal Id           Station 1           Station 2           
a01                 2                   1                  
a02                 0                   3                  
a03                 6                   4                  
a04                 5                   5                  
a05                 1                   0                  
============================================================

嘿,伙计们,我本来在做这个节目,但现在卡住了。我正在打印动物的身份证和两个电台。这三个电台都有20个字符长,但我总是因为某些原因而出现这个错误。

希望你们能帮忙:)

谢谢


Tags: ofnamevisiteachprintstationanimalsstr
2条回答

如果您转到visit=0visit将是一个整数,然后您不能使space=str((20-len(visit))*' '),您可以尝试写入visit='0'

visit=0正在接收您。整数的长度未定义,因此稍后代码中的len(visit)会给您一个错误。看起来您正在将visit设置为代码前面的字符串,因此使用visit="0"应该可以工作。

相关问题 更多 >