#python #arrays #input
#питон #массивы #входные данные
Вопрос:
Вот что у меня есть до сих пор:
# Read input names from user until 0, print input
inputNames = []
names = ""
while names != "0":
names = input("Please enter a name or enter '0' to quit: ")
inputNames.append(names)
if names == "0":
del inputNames[3]
print("n".join(inputNames))
Это было просто быстрое решение, потому что я не могу понять, как исключить «0» из вывода, когда пользователь вводит «0» для печати списка. Таким образом, он должен вводить имена в массив до тех пор, пока не будет введено «0», затем распечатайте массив в порядке ввода в каждой строке за вычетом ввода «0». Мой работает до тех пор, пока введено только 3 имени.
Комментарии:
1. Извините, я не понимаю — в чем ваш вопрос ? Что произошло, когда вы попытались запустить код, и чем это отличается от того, что должно произойти?
2. Когда пользователь вводит,
0
он будет отображаться на экране, потому что такinput()
оно и работает. Если вы хотите удалить последний элемент в списке, используйтеdel inputNames[-1]
.
Ответ №1:
Проверьте наличие 0 ПЕРЕД добавлением в список:
inputNames = []
while 1:
name = input("Please enter a name or enter '0' to quit: ")
if name == '0':
break
inputNames.append(name)
print('n'.join(inputNames))
Ответ №2:
поместите «inputNames.pop()» или «inputNames.remove(‘0’)» после цикла while, чтобы удалить ноль.
Комментарии:
1. Спасибо, это привело меня к тому, о чем я не думал, используя remove!
2. # Считывать входные имена от пользователя до 0, выводить входные имена = [] имена = «» в то время как имена ! = «0»: имена = ввод («Пожалуйста, введите имя или введите «0», чтобы выйти: «) Входные имена.добавить (имена), если имена == «0»:inputNames.remove(«0″) print(» n».join(входные имена))
3. кроме того, вам не нужно «if names == 0:», потому что цикл while уже настроен на завершение, если names равно нулю. и тогда вы можете просто удалить 0 из списка вне цикла while.