"TypeError: Can't convert 'list' object to str implicitly" Can anyone see what will fix my code?
"TypeError: Can't convert 'list' object to str implicitly" Can anyone see what will fix my code?
我是 python 的新手,因为我的学校使用 .NET 框架教授 visual basic,我最近获得了 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:
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 个字母创建一个 "Usernames" 的输入数字,并随机选择其中一个结尾放在这三个字母的末尾。
这些是有错误的行
打印("Name: "+姓名[0:姓名编号])
打印("Username: "+str(名称[0][0:3])+str(结尾[结尾编号]))
这是错误
类型错误:无法将 'list' 对象隐式转换为 str
在您的循环中,您需要第 i 个名称(索引 i 处的名称)。
替换为:
for i in range(NameNumber):
print("Name: " + Names[i])
- 原因:
Names = []
print("Name: "+Names[0:NameNumber])
这里的Names
是列表类型。您正在向列表中添加一个字符串。 Python 必须进行显式类型转换,不允许在字符串和列表之间添加运算符。所以引发类型错误。
- 修复:
我猜你是想遍历名称并打印出元素。
print("Name: "+Names[i])
但是您编写的程序还有其他一些 logic/data 结构问题,因此我认为它无法正确生成结果。我建议您先阅读一些 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]))
我是 python 的新手,因为我的学校使用 .NET 框架教授 visual basic,我最近获得了 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:
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 个字母创建一个 "Usernames" 的输入数字,并随机选择其中一个结尾放在这三个字母的末尾。
这些是有错误的行 打印("Name: "+姓名[0:姓名编号]) 打印("Username: "+str(名称[0][0:3])+str(结尾[结尾编号])) 这是错误 类型错误:无法将 'list' 对象隐式转换为 str
在您的循环中,您需要第 i 个名称(索引 i 处的名称)。
替换为:
for i in range(NameNumber):
print("Name: " + Names[i])
- 原因:
Names = []
print("Name: "+Names[0:NameNumber])
这里的Names
是列表类型。您正在向列表中添加一个字符串。 Python 必须进行显式类型转换,不允许在字符串和列表之间添加运算符。所以引发类型错误。
- 修复: 我猜你是想遍历名称并打印出元素。
print("Name: "+Names[i])
但是您编写的程序还有其他一些 logic/data 结构问题,因此我认为它无法正确生成结果。我建议您先阅读一些 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]))