我创建了一个简单的程序,用户可以在其中添加商品到他们的购物清单。添加项目后,系统会询问他们是否已完成。如果键入“是”,则列表中的项目将被打印,并且程序将退出。如果键入否,则可以将更多项目添加到列表中。问题是我只希望是或否。如果用户写了其他任何内容,我希望打印一条消息,说您只能写“是”或“否”。程序结束时,由于消息位于底部,因此我编写代码的方式已结束。我不确定将其放置在何处。我试图将其放置在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")
答案 0 :(得分:1)
定义:
def ask_yes_no():
while True:
x = input()
if x == "yes":
return True
if x == "no":
return False
print("Expecting yes/no")
然后以以下方式使用ask_yes_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)
答案 1 :(得分:0)
我们需要在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)
答案 2 :(得分:0)
我相信这可以满足您在问题中指定的要求。请注意,该程序将保留在内部循环中,直到答案为是或否。还要注意,我们在问问题之前将杂货项目添加到列表中。
#!/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)