首页 > 解决方案 > 如何将用户输入与多个 OR 条件 PYTHON 3.x 进行比较

问题描述

抱歉,如果这是一个愚蠢的问题。我已经进行了一些搜索,但无法找到我需要的信息。我对python很陌生。目前正在学习 Python 3 The Hard Way 课程中。

我正在尝试编写一个 IF 语句,该语句采用用户生成的字符串,并将其与列表进行比较,然后在匹配时评估为 True。

我已经能够使用以下方法成功地做到这一点:

if input in list:
    print("That was in the list.")

但我现在要做的是交换这个并使用一个单独的列表,它是 IF 语句的一部分。我正在做一个 ZORK 风格的游戏,房间的门在不同的墙壁等处,所以在这种情况下,拥有一堆具有不同配置的“n”、“s”的永久列表对我来说没有意义, 'e', 'w' 我必须根据哪些墙壁有门来引用它们。但我不想写出三个独立的 elif 评估,它们都做同样的事情(如果我为每个房间的每个“不去”方向写一个。)希望一切都有意义。

我在某处读到,您可以将列表放入这样的 IF 语句中 {'up', 'down', 'left'} 但是当我尝试这样做时,它说我的“in”评估中没有字符串:

choice = input("> ")

if {'up', 'down', 'left', 'right'} in choice:
    print("You wrote a direction!")
else:
    print("Oh bummer.")

标签: pythonpython-3.xif-statement

解决方案


您需要做的就是使用列表[]方括号,而不是大括号(用于集合),并且您需要将选择变量向前移动。(您想看到choice列表中的,而不是相反。)

您的代码应该是:

choice = input("> ")

if choice in ['up', 'down', 'left', 'right']:
    print("You wrote a direction!")
else:
    print("Oh bummer.")

推荐阅读