4

可能重复:
表达式与语句

Python中的表达式语句有什么区别?

我从来没有想过这个问题,直到我学习 Python 生成器,它说“使用 yield 作为表达式

另外,您能否在“使用 yield 作为表达式”的 Python 生成器的上下文中解释这个问题?

4

3 回答 3

8

可以计算表达式以返回值。任何表达式也可以用作语句。

换句话说,如果你可以写a = ...,那么...就是一个表达式。所以2*3zip(x,y)是表达式。

类似的东西raise Exception是一个语句而不是一个表达式:你不能写a = (raise Exception).

yield 是一个表达式意味着它b = (yield a)是生成器中的有效代码。如果您使用生成器的send()方法,b则设置为您传入的值。

于 2012-09-26T11:39:48.497 回答
2

表达式只包含标识符、文字和操作符,其中操作符包括算术和布尔操作符、函数调用操作符 ()、订阅操作符 [] 等,并且可以简化为某种“值”,可以是任何 Python 对象。

另一方面,语句是可以组成一行(或几行)Python 代码的所有内容。请注意,表达式也是语句。

希望它会帮助你:)

于 2012-09-26T11:36:32.060 回答
0

我将其提炼为:

  • 表达式某种东西——正如已经说过的,它有一个值——并且
  • 声明做某事

当然,所有这种减少的问题是有一个警告;作为其评估的一部分,表达式仍然可以做一些事情。但它最终还是有价值的。

于 2012-09-26T11:51:36.073 回答