可能重复:
表达式与语句
Python中的表达式和语句有什么区别?
我从来没有想过这个问题,直到我学习 Python 生成器,它说“使用 yield 作为表达式”
另外,您能否在“使用 yield 作为表达式”的 Python 生成器的上下文中解释这个问题?
可以计算表达式以返回值。任何表达式也可以用作语句。
换句话说,如果你可以写a = ...
,那么...
就是一个表达式。所以2*3
和zip(x,y)
是表达式。
类似的东西raise Exception
是一个语句而不是一个表达式:你不能写a = (raise Exception)
.
yield 是一个表达式意味着它b = (yield a)
是生成器中的有效代码。如果您使用生成器的send()
方法,b
则设置为您传入的值。
表达式只包含标识符、文字和操作符,其中操作符包括算术和布尔操作符、函数调用操作符 ()、订阅操作符 [] 等,并且可以简化为某种“值”,可以是任何 Python 对象。
另一方面,语句是可以组成一行(或几行)Python 代码的所有内容。请注意,表达式也是语句。
希望它会帮助你:)
我将其提炼为:
当然,所有这种减少的问题是有一个警告;作为其评估的一部分,表达式仍然可以做一些事情。但它最终还是有价值的。