慕蓋茨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數據結構有一個基本的了解......

開滿天機
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]))

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
在您的循環中,您需要第i個名稱(索引i處的名稱)。
替換為:
for i in range(NameNumber): print("Name: " + Names[i])
添加回答
舉報
0/150
提交
取消