有人可以解释为什么要编译吗?
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 会报错,因为没有运算符 ===
分类。 =
运算符赋值,==
比较,===
没有这样的运算符
我是 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 会报错,因为没有运算符 ===
分类。 =
运算符赋值,==
比较,===
没有这样的运算符