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

时间:2019-06-13 14:23:05

标签: python python-3.x variable-assignment assignment-operator

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

a=13
a==14
print(a)

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

a = 13将值13分配给a。

a == 14比较a和14并返回false,因为13!= 14

所以a == 14有效

答案 2 :(得分:0)

在这里      a = 13会将值13分配给变量a

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

a === 13将给出错误,因为没有运算符===

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