【发布时间】:2018-05-03 12:45:31
【问题描述】:
我希望用户向列表中添加新项目。当用户输入“q”时,我希望程序退出,然后将此列表用作另一个函数的输入。 但我无法跳出循环,因为“Q”已添加到列表中:
base = ["item1", "item2"]
def add_item(item, base=base):
item=item.upper()
base.append(item)
return base
while True:
user_input = add_item(input("Add an item or enter q to finish: "))
if user_input == "Q":
break
else:
print(f"New item added: {user_input}")
print("Added")
另外,我以后如何使用最终输出(最终列表)作为另一个函数的输入? 我想检查该项目是否已经在列表中,然后对这个项目做一些事情。 我有一个大概的想法,也许我应该像这样使用“全局”:
def check(item):
global base
if item in base:
print("in the list")
else:
print("not here")
有更好的方法吗?
【问题讨论】:
-
user_input保存add_item的返回值。add_item永远不会返回字符串"Q"。您应该在调用add_item之前检查用户输入。 -
另外,在您的代码中,您正在检查大写 Q 并且在您的问题中您说
When user enters "q"(下划线 q)。下划线 q 永远不会结束你的程序。 -
不过我也改成大写了
标签: python python-3.x while-loop user-input