我们看下面一段代码

#include <iostream>

using namespace std;

int main() {
    int a(1), b(3), c(2);
    while (a < b < c) {
        ++a;
        --b;
        --c;
    }
    cout << a << "," << b << "," << c << endl;
}

可以先看一下输出是多少。

然后我们写同样的python版本的,看看输出是多少。

a = 1
b = 3
c = 2

while a < b < c:
    a += 1
    b -= 1
    c -= 1

print(a, b, c)

c++的输出是3,1,0
python的输出是 1,3,2

原因是C++中的比较运算符拥有相同的优先级,而且是从左往右计算,那么
a < b 也就是1 < 3是成立的,会返回 1,现在就是 1 与 c进行比较,1 < 2也是成立的,依次往下就会得到3,1,0这个答案。

在python中,a < b < c是 a < b and b < c 这样进行计算的,其中 b < c 是不成立的,所以while语句不会被执行,那么直接返回初始的值。