python - 如何将用户输入与多个 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.")
解决方案
您需要做的就是使用列表[]
方括号,而不是大括号(用于集合),并且您需要将选择变量向前移动。(您想看到choice
列表中的,而不是相反。)
您的代码应该是:
choice = input("> ")
if choice in ['up', 'down', 'left', 'right']:
print("You wrote a direction!")
else:
print("Oh bummer.")
推荐阅读
- flutter - 带有 2 个子图标和(扩展)文本(长)的行,它们之间有空格
- python - SciKitlearn ColumnTransformer TypeError:无法克隆对象。您应该提供一个 scikit-learn 估计器的实例而不是一个类
- java - 是否可以在 TextArea JavaFX 中添加项目符号列表模式
- matlab - 为 Mac 添加 NetLogo 扩展的问题
- nestjs - NestJS:我的控制器不发送响应
- javascript - Thymeleaf:如何搜索具有变量索引的数组?
- sql - 有没有办法在表的所有字段中搜索字符串并根据找到字符串的位置返回一个字段?
- linux - Linux 审计日志 - 带有失败退出代码的成功事件
- python - 如何根据 API 端点更新 Python 代码?
- javascript - 谁能解释为什么这会返回 50 到 100 个相同的值?我正在使用它来更改函数在特定窗口宽度下的作用