Python 使用while循环将项目添加到列表

Python 使用while循环将项目添加到列表,python,python-3.x,Python,Python 3.x,我创建了一个简单的程序,用户可以在其中向他们的购物清单中添加物品。添加项目后,会询问他们是否完成。如果他们键入“是”,列表上的项目将被打印,如果他们键入“否”,程序将退出,他们可以向列表中添加更多项目。问题是我只想选择是或否。如果用户写了其他内容,我希望打印出一条消息,说明您只能写“是”或“否”。我编写代码的方式是,当程序结束时,消息位于底部。我不知道放在哪里。我试图将其放入while循环中,但这与条件相矛盾 mylist = [] are_you_done = "no" while are_y

我创建了一个简单的程序,用户可以在其中向他们的购物清单中添加物品。添加项目后,会询问他们是否完成。如果他们键入“是”,列表上的项目将被打印,如果他们键入“否”,程序将退出,他们可以向列表中添加更多项目。问题是我只想选择是或否。如果用户写了其他内容,我希望打印出一条消息,说明您只能写“是”或“否”。我编写代码的方式是,当程序结束时,消息位于底部。我不知道放在哪里。我试图将其放入while循环中,但这与条件相矛盾

mylist = []
are_you_done = "no"
while are_you_done == "no":
    grocery_item = input("Add to Grocery ")
    are_you_done = input("Are you done? ")
    mylist.append(grocery_item)


if are_you_done == "yes":
    for item in mylist:
        print(item)
else:
    print("Please type Yes or No")
定义:

def ask_yes_no():
    while True:
        x = input()
        if x == "yes":
            return True
        if x == "no":
            return False
        print("Expecting yes/no")
然后按以下方式使用
询问\u yes\u no()

grocery_items = []

while True:
    grocery_item = input("Add to Grocery ")
    print("Are you done? ", end="")

    if ask_yes_no():
        break

    grocery_items.append(grocery_item)

我们需要在while循环中检查输入条件是否得到了适当的满足。此外,我们应该标准化大写和小写的输入

mylist = []
are_you_done = "no"
while are_you_done == "no":
    grocery_item = input("Add to Grocery ")
    are_you_done = input("Are you done? ").lower()        
    if are_you_done not in ("no", "yes"):
          print("Please type Yes or No")
          are_you_done = "no"
    else:
          mylist.append(grocery_item)


for item in mylist:
    print(item)

我相信这是你在问题中所说的。请注意,在答案为“是”或“否”之前,该程序一直处于内部循环中。请注意,在提问之前,我们会将杂货项目添加到列表中

#!/usr/bin/python3

mylist = []
are_you_done = "no"

while are_you_done == "no":

    grocery_item = input("Add to Grocery ")
    mylist.append(grocery_item)

    while True:
        are_you_done = input("Are you done? ")
        if are_you_done in ['yes','no']:
            break
        else:
            print( 'please answer with yes or no' )


for item in mylist:
    print(item)

把它放进while循环是正确的。您需要更改您的条件,以便在用户输入“是”或“否”以外的内容时循环继续运行,并且在输入“是”之前不会退出。这会附加什么内容?@roganjosh这不是他们在说明中要求的吗?标题是“使用while循环将项目添加到列表”它们显示了附加到list@roganjosh大部分的描述都是这样的:“在添加一个项目后,会询问他们是否完成了。如果他们键入“是”,列表上的项目将被打印,如果他们键入“否”,程序将退出,他们可以向列表中添加更多项目。问题是我只想选择是或否。如果用户写了其他内容,我希望打印出一条消息,说您只能写“是”或“否”。如果您希望我回答标题,则它是
.append()
,尽管OP似乎已经在这样做了。此外,这个问题以重复的形式结束,答案与这个问题几乎相同。描述清楚地表明,他只想要“是”或“否”。1)
mylist。append(杂货店项目)
需要在
mylist之前。append(杂货店项目)
,2)
如果你完成了!=“不”或者你完蛋了“是”
更好,因为
如果您不在('no','yes')