Я работаю над последовательностью, которая проходит по списку и задает пользователю вопрос о каждом из элементов в списке. В зависимости от ответа последовательность должна выполнить 1 из 3 вещей:
1. Continue on to the next item
2. Delete the item at the present index
3. Display and error message, restart
Пока я получил цикл для работы почти , как мне нужно, но он все еще не работает так, как мне хотелось бы, и я не уверен, где я нахожусь что-то не так.
Вот что у меня есть:
fruit_list = ["Apples", "Pears", "Oranges", "Peaches"]
item = 1
while item < len(fruit_list):
for val in fruit_list:
user_resp = input("Do you like " + str(val) + "? ")
print()
if user_resp != "yes" and user_resp != "no":
print("Please only answer with 'yes' or 'no'.")
item+=1
break
elif user_resp == "yes":
item+=1
continue
elif user_resp == "no":
fruit_list.remove(val)
item+=1
continue
У меня есть следующие вопросы / вопросы:
Я использовал переменную "item", чтобы попытаться ограничить цикл while циклами, пока все элементы в списке не будут циклически повторены, но если пользователь вводит неправильный ответ, я хочу продолжать спрашивать тот же вопрос, пока они не ответят «да» или «нет». То, что у меня сейчас есть, просто выходит из цикла, если ответ не «да» или «нет».
Когда пользователь вводит «нет», последовательность должна удалить индекс / значение для элемента, который только что был показан пользователю, а затем отобразить значение следующего индексированного элемента, но вместо того, что я удаляет элемент, но он также отображает значение после следующего индекса (т. е. если вы удалили «Яблоки» из списка, вместо того, чтобы отображать «Груши» далее, он отобразит «Апельсины»).
Есть какие-нибудь мысли / предложения о том, как это оптимизировать?