Python if语句让我感到困惑

时间:2018-05-25 13:31:06

标签: python python-3.x

运行python v3.6.5 PyCharm

我有一个简单的for循环,带有if和else语句:

for i in range(10):
    if i > 3 < 5:
        print(i, "first")
    else:
        print(i, "second")

我得到的输出是:

0 second
1 second
2 second
3 second
4 first
5 first
6 first
7 first
8 first
9 first

但输出不应该是:

0 second
1 second
2 second
3 second
4 first
5 second
6 second
7 second
8 second
9 second

亲自尝试一下。这对我来说没有意义。为什么要这样做?

不需要知道

我知道你可能在想,你为什么不这么说

if i == 4

但这只是我程序中的一个简化问题。

提前致谢

雨果

2 个答案:

答案 0 :(得分:7)

i > 3 < 5这样的运算符链被解释为

i > 3 and 3 < 5

其中&#34;中间&#34;左右操作符重复操作数。你想要

3 < i and i < 5

,可以缩写(使用前面解释的反向)作为3 < i < 5

答案 1 :(得分:6)

正确的语法是:

if 3 < i < 5:

请注意,Python在这里很特别,而且这种结构在大多数其他语言中都不起作用(在这里你不得不说3 < i and i < 5之类的东西)。