"“ typeError:无法将“列表”对象转换为str.任何人都可以看到什么可以修复我的代码



我对python来说是新手,因为我的学校使用.NET框架教授视觉基础,最近我得到了Raspberry Pi 3b 。我正在尝试创建一个最近被要求在Visual Basic上创建的程序。我已经在此类型上查看了其他形式,但看不到一种修复我的代码的方法。

Ending = ["ing","end","axe","gex","goh"]
while True:
    try:
        NameNumber_Input = input("Enter Number of Names To Be Created: ")
        NameNumber = int(NameNumber_Input)
        print(NameNumber_Input +" Users Will Be Created")
    except ValueError:
        print("Invalid Input, Please Try Again")
    else:
        break
Names=[]
for i in range (NameNumber):
    data=input("Enter Name: ")
    Names.append(data)
for i in range (NameNumber):
    print("Name: "+Names[0:NameNumber])
    import random
    for x in range(1):
        EndingNumber = random.randint(0,4)
        print("Username: "+str(Names[0][0:3])+str(Ending[EndingNumber]))

目的是在输入的名称的前3个字母中创建了输入数量的"用户名",并将随机选择的结尾之一随机选择在三个字母的末尾。

这些是带有错误的行打印("名称:" 名称[0:namenumber])打印("用户名:" str(名称[0] [0:3]) str(ending [endingNumber]))这是错误TypeError:无法将"列表"对象转换为Str

  • 原因:
    Names = []
    print("Name: "+Names[0:NameNumber])

Names这是列表类型。您正在将字符串添加到列表中。Python必须进行显式类型转换,并在字符串和列表之间添加操作员。因此提出类型错误。

  • 修复:我想您正在浏览名称并打印出元素。
    print("Name: "+Names[i])

但是,您编写的程序还有其他一些逻辑/数据结构问题,因此我认为它不会纠正。我建议您首先阅读一些Python教程,以对Python数据结构有基本的了解...

在代码print("Name: "+Names[i])中进行两个更改而不是print("Name: "+Names[0:NameNumber])print("Username: "+str(Names[i][0:3])+str(Ending[EndingNumber]))而不是print("Username: "+str(Names[0][0:3])+str(Ending[EndingNumber]))

在您的循环中,您想要 i th名称(index i 的名称)。

替换为:

for i in range(NameNumber):
    print("Name: " + Names[i])

相关内容