Я изучаю Python и пытаюсь составить список покупок где вы можете добавлять предметы
сначала он попросит вас добавить товары, если список покупок пуст он будет добавлен автоматически, если нет, он спросит вас, где вы хотите поставить товар (индекс)
но также я пытаюсь выйти из программы в определенном состоянии, например DONE или ПОМОЩЬ или ПОКАЗАТЬ, но даже то, что я поставил условие для этого, но оно не работает, может ли кто-нибудь помочь мне с этим
надеюсь, я достаточно объяснил
import os
shopping_list =[]
# Function for clearing the screen
def clear_screen():
os.system("cls" if os.name == "nt" else "clear")
def show_help():
print("Enter 'Done' if you finish adding item \n Enter 'Show' to show your items \n Enter 'Help' toshow this help ")
# Function to show the items that you've entered to the list
def show_item():
clear_screen()
index = 1
for item in shopping_list:
print("{} {}.".format(index,item))
index += 1
# Function to add items to the list
def add_to_list():
while True:
new_item = input("Please enter the item that you would like to add to your shopping list ")
if shopping_list and ((new_item.upper() != "DONE") or (new_item.upper() != "HELP") or (new_item.upper() != "SHOW")):
position = input("Where you would like to add {} to the list \n press 'Enter' if you want to add to the end of the list".format(new_item))
position = abs(int(position))
shopping_list.insert(position - 1 , new_item)
show_item()
else:
if new_item.upper() == "DONE":
break
elif new_item.upper() == "SHOW":
show_item()
continue
elif new_item.upper() == "HELP":
show_help()
continue
else:
shopping_list.append(new_item)
show_item()
show_help()
add_to_list()






Добро пожаловать в stackoverflow. Думаю, ваше логическое утверждение неверно, вам нужен and вместо or. Прямо сейчас все, что вам нужно для того, чтобы утверждение в скобках было верным, - это то, что new_item.upper() не входит по крайней мере в одно из этих трех слов. На самом деле это не может приравниваться к False, поскольку два из трех всегда истинны.
((new_item.upper() != "DONE") or (new_item.upper() != "HELP") or (new_item.upper() != "SHOW"))
Если у вас есть, например, done, первый оператор - это Ложь, а два других - Правда, добавляя к Правда в операторах or.
>>> new_item = 'done'
>>> print((new_item.upper() != "DONE") or (new_item.upper() != "HELP") or (new_item.upper() != "SHOW"))
True
Тогда вы можете отметить ответ как accepted, чтобы было ясно, что вопрос, так сказать, закрыт. Повеселись!
Спасибо, чувак, это сработало для меня, я очень ценю это :)