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