在Python中,表达式和语句之间的区别是什么?


当前回答

表达式是返回值的语句。因此,如果它可以出现在赋值操作的右侧,或者作为方法调用的参数,那么它就是一个表达式。 有些代码可以是表达式,也可以是语句,这取决于上下文。当这两者模棱两可时,语言可能有一种方法来区分它们。

其他回答

表达式:

表达式由对象和运算符组合而成。 表达式有一个值,值有一个类型。 简单表达式的语法:<object><operator><object>

2.0 + 3是一个计算结果为5.0的表达式,并且有一个与之关联的类型浮点数。

语句

语句由表达式组成。它可以跨越多行。

表达式是返回值的语句。因此,如果它可以出现在赋值操作的右侧,或者作为方法调用的参数,那么它就是一个表达式。 有些代码可以是表达式,也可以是语句,这取决于上下文。当这两者模棱两可时,语言可能有一种方法来区分它们。

表达式转换为值。

语句消耗值*以产生结果**。


*包括一个空值,如:print()或pop()。

**这个结果可以是任何改变某事的动作;例如,改变内存(x = 1)或改变屏幕上的某些东西(print("x"))。


注意事项:

因为语句可以返回结果,所以它可以是表达式的一部分。 一个表达式可以是另一个表达式的一部分。

表达式是可以简化为值的东西,例如“1+3”是一个表达式,但“foo = 1+3”不是。

很容易检查:

print(foo = 1+3)

如果它不起作用,它就是一个语句,如果它起作用,它就是一个表达式。

另一种说法可以是:

class Foo(Bar): pass

因为它不能被简化为一个值。

前面的语句可以改变Python程序的状态:创建或更新变量,定义函数,等等。

表达式只是返回一些值,不能改变函数中的全局状态或局部状态。

但现在我们得到了:=,它是一个外星人!