«TypeError: Не могу неявно преобразовать объект списка в str» Кто-нибудь может увидеть, что исправит мой код? - PullRequest
0 голосов
/ 19 марта 2019

Я довольно новичок в python, так как моя школа преподает визуальные основы с использованием .NET Framework, и недавно я получил 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 букв введенных имен, и иметь одно из произвольно выбранных окончаний, которое должно быть помещено в конце трех букв.

Это строки с ошибками печать («Имя:» + Имена [0: Имен_имя]) print ("Имя пользователя:" + str (имена [0] [0: 3]) + str (конец [EndingNumber])) Это ошибка TypeError: Невозможно неявно преобразовать объект списка в str

Ответы [ 3 ]

1 голос
/ 19 марта 2019
  • Причина:
    Names = []
    print("Name: "+Names[0:NameNumber])

Names - это тип списка. Вы добавляете строку в список. Python должен делать явное преобразование типов и добавлять операции между строкой и списком не допускается. Так что поднимите Type Error.

  • Fix: Я полагаю, вы пытаетесь пройтись по Именам и распечатать элемент.
    print("Name: "+Names[i])

Но у программы, которую вы пишете, есть некоторые другие проблемы с логикой / структурой данных, поэтому я не могу дать правильные результаты, я думаю. Я предлагаю вам сначала прочитать некоторые учебники по Python, чтобы иметь общее представление о структуре данных Python ...

0 голосов
/ 19 марта 2019

внесите два изменения в ваш код 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]))

0 голосов
/ 19 марта 2019

В вашем цикле вы хотите i th имя (имя по индексу i ).

Заменить на:

for i in range(NameNumber):
    print("Name: " + Names[i])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...