Python 不会跳过 "if [strg] or [strg] in variable"

标签 python string

<分区>

我正在用 Python 2.7 编写一个简单的基于文本的游戏。在下面的代码中,即使用户回答的内容与“运行”或“无”完全不同,arrested() 函数仍然会启动。我很确定问题出在这一行代码:

if "run" or "nothing" in answer:

因为如果我只提供一个字符串,如下:

if "run" in answer:

程序运行良好,如果答案不包含“运行”,则调用 remote_spot()。整个代码如下:

def facing_cops():
    print "There are several cars that might serve as stake-outs for the cops. What do you do?"
    answer = raw_input("> ")
    if "run" or "nothing" in answer:
        arrested("Cops got suspicious. You are arrested, along with the drug dealer.")
    else:
        remote_spot()

你认为这是怎么回事?

谢谢,

克里斯

最佳答案

没有按照您的意愿执行。你写的是一样的:

if "run" or ("nothing" in answer):

“run”是一个字符串,在 bool 上下文中它被理解为 True。所以你想要:

if "run" in answer or "nothing" in answer:

关于Python 不会跳过 "if [strg] or [strg] in variable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182095/

相关文章:

python - 如何将字符串输入作为整数参数传递?

python - JSON解码错误 : Expecting value: line 1 column 1 (char 0) error

java - 如何在文本中找到复合字符串

java - 如何从java中的响应中获取一部分?

python - 如何在标签或按钮内设置 kivy 字体大小,使其填充标签或按钮,甚至标签或按钮大小发生变化

python - 根据Python中的其他列生成自定义ID

string - 如何查找所有不包含子串回文的字符串

python - 无法打印出请求的文本?

python - 如何设计插件架构,其中插件填充网页的不同部分?

python - 我的 API 没有显示在资源管理器中,日志只显示 500