为了账号安全,请及时绑定邮箱和手机立即绑定

“类型错误:无法将 'list' 对象隐式转换为 str” 谁能看到什么可以修复我的代码?

“类型错误:无法将 'list' 对象隐式转换为 str” 谁能看到什么可以修复我的代码?

慕盖茨4494581 2021-12-09 14:30:11
我对 Python 还很陌生,因为我的学校使用 .NET 框架教授视觉基础知识,而且我最近获得了 Raspberry Pi 3B+。我正在尝试创建一个我最近被要求在 Visual Basic 上创建的程序。我已经查看了有关此 TypeError 的其他形式,但找不到修复我的代码的方法。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:        breakNames=[]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 个字母创建输入数量的“用户名”,并随机选择一个结尾放在三个字母的末尾。这些是有错误的行 print("Name: "+Names[0:NameNumber]) print("Username: "+str(Names[0][0:3])+str(Ending[EndingNumber])) 这是错误类型错误 :无法将“列表”对象隐式转换为 str
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

原因:

    Names = []

    print("Name: "+Names[0:NameNumber])

在Names这里是一个列表类型。您正在向列表中添加一个字符串。Python 必须进行显式类型转换,不允许在字符串和列表之间添加操作。所以提出类型错误。


修复:我猜您正在尝试查看名称并打印元素。

    print("Name: "+Names[i])

但是你写的程序有一些其他的逻辑/数据结构问题,所以我认为它不能正确地产生结果。我建议你先阅读一些python教程,对python数据结构有一个基本的了解......


查看完整回答
反对 回复 2021-12-09
?
开满天机

TA贡献1786条经验 获得超13个赞

使你的代码的两个变化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]))


查看完整回答
反对 回复 2021-12-09
?
三国纷争

TA贡献1804条经验 获得超7个赞

在您的循环中,您需要第i个名称(索引i处的名称)。

替换为:

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


查看完整回答
反对 回复 2021-12-09
  • 3 回答
  • 0 关注
  • 391 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信