为什么“abcdef”中的“Prefix:” + 'abc' 计算结果为 False 而不是 'Prefix: True'?

问题描述 投票:0回答:1

我是Python新手,正在尝试这段代码

course = 'Python for Beginners'
print("Python is in text: " + 'Python' in course)

我期待输出

Python is in text: True

我实际得到的结果只是下面的布尔值。

False

我知道我可以通过在

str('Python' in course)
周围添加 str 和括号来修复代码,但是我想了解原始代码中发生的机制。 你们谁能解释一下Python是如何解析代码的吗? 我发现 Python 可以解析没有括号的逻辑运算符,即

value = 15
print(value > 10 and value < 30)
python
1个回答
-1
投票

Python 中的运算符按照运算符优先级执行。优先级较高的运算符将比优先级较低的运算符先执行。

在您的情况下,我们有两个运算符:字符串连接(+)和某种类型的成员资格测试(in)。

因此,如果我们检查运算符优先级,我们会发现 (+) 运算符比 (in) 更早执行,因为它具有更高的优先级。同样在优先级表中,我们看到括号内的表达式具有最高优先级:当您需要显式设置运算符执行顺序时,请使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.