【发布时间】:2020-02-16 02:53:25
【问题描述】:
我有一个 Python 的学校作业,我有一个背包里的物品,需要编写代码来询问用户是否想要:a)将物品添加到背包中,b)检查背包中的物品, c) 退出程序。
对于我的代码,我想这样做,如果用户在输入时添加新项目只是点击返回并将输入留空,它将再次提示输入,而不是在没有项目时继续代码实际上是添加的。这是我目前所拥有的:
import sys
itemsInBackpack = ["book", "computer", "keys", "travel mug"]
while True:
print("Would you like to:")
print("1. Add an item to the backpack?")
print("2. Check if an item is in the backpack?")
print("3. Quit")
userChoice = input()
if (userChoice == "1"):
print("What item do you want to add to the backpack?")
itemAddNew = input()
if itemAddNew == "":
break
else:
itemsInBackpack.insert(0, itemAddNew)
print("Added to backpack.")
在此处使用我的代码,即使我在测试中按回车键并将输入留空,代码仍会继续前进,并且不会中断以再次提示输入。是因为我已经在 if 语句中使用了 if 语句吗?我确信总的来说有更好的方法可以做到这一点,但作为一个初学者,我很难过,并且可以在正确的方向上使用。
【问题讨论】:
-
break将转义您的 while 循环,从而结束代码。听起来你想添加另一个 while 循环? -
有趣,我没有考虑到这一点。我通过快速的 while True, if/else 来测试它,它让我知道我的 itemAddNew 没有定义。如何让它在第二个 while 循环之外识别 itemAddNew?
-
@cwbusacker 的回答可能会有所帮助
标签: python if-statement input break