如果使用“ in”命令时未输入任何数据,如何使python代码返回false

时间:2018-09-24 17:02:04

标签: python windows

我是python的新手,希望获得一些帮助。 我正在尝试编写一个程序,该程序检查是否允许使用某些选项,并且该选项会不断重复。我已经走了这么远:

menu=input("Enter options:")
def text():
    x = 1
    while x == 1:
        request = input("Chosen option:")
        print(request.lower() in menu.lower())
    text()

,并且有效。我被问到可能的选项,我输入它们,然后它问我选择的选项,我输入它,如果它是其中之一,则返回“ True”,否则返回“ False”。但是,如果我什么也没输入,而只是按Enter,它也会返回“ True”,我不想发生这种情况。 有关如何解决此问题的任何建议? 预先感谢。I attached a picture of the code, it doesn't make a difference how I enter the options (spaces, commas, no gap, etc) i still get the same problem

1 个答案:

答案 0 :(得分:0)

问题在于您如何定义menumenu在您的情况下是一个字符串(我怀疑您在python3上,在python2中,input()做一些“魔术”,如将"3"(字符串)转换为3(整数))。如果您随后没有为request提供任何输入,则您实际上将具有以下代码:

"" in "foo,bar"

每个字符串中都有空字符串"",因此它始终位于您的选项字符串中。

您可以将选项转换为选项列表,而不必使用单个字符串:

>>> menu = input().split(",")
>>> print(menu)
['a', 'b', 'c']

假设您输入了a,b,c。现在""不在此列表中,因此可以解决您的问题。