有人可以解释为什么要编译吗?

Can someone explain why this compiles?

我是 Python 的新手,正在试验 运行 以下代码:

a=13
a==14
print(a)

由于第二行,我预计该程序无法编译,但令人惊讶的是它编译了(尽管我看不到它所做的任何更改)。有人可以解释为什么吗?如果我使用 a===14 而不是 a==14 就会出错。

a = 13 将值 13 赋给 a.

a==14 比较 a 和 14 和 return false 因为 13 != 14

所以 a==14 是有效的

a==14 不是语句,而是表达式。它产生一个布尔结果,一旦产生就被丢弃。是对程序完全没有影响的一行。

另一方面,python 中没有 === 运算符,这就是您的程序在这种情况下失败的原因。与 javascript 相反,python 是一种 强类型 语言,它不进行隐式转换。 python的==类似于javascript中的===

这里 a=13 会将值 13 赋值给变量 a

a==14 将检查 a 的值是否为 14

a===13 会报错,因为没有运算符 ===

分类。 =运算符赋值,==比较,===没有这样的运算符