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


当前回答

表达式转换为值。

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


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

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


注意事项:

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

其他回答

参考文献

表达式和语句

2.3表达式和语句——Allen B. Downey编写的thinkpython2

2.10. 《陈述和表达——如何像计算机科学家一样思考》作者:Paul Resnick和Brad Miller


表达式是值、变量和操作符的组合。一个值本身就是 认为是表达式,所以是变量,所以以下都是合法的表达式:

>>> 42
42
>>> n
17
>>> n + 25
42

当您在提示符下键入表达式时,解释器将计算它,这意味着 它查找表达式的值。在本例中,n的值为17,n + 25的值为 价值42。


语句是具有效果的代码单元,就像创建变量或显示对象一样 价值。

>>> n = 17
>>> print(n)

第一行是赋值语句,给n赋值。第二行是打印 语句,显示n的值。 当你输入一个语句时,解释器执行它,这意味着它会做任何事情 声明说。一般来说,语句没有值。

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

很容易检查:

print(foo = 1+3)

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

另一种说法可以是:

class Foo(Bar): pass

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

语句包含关键字。

表达式不包含关键字。

打印“hello”是语句,因为打印是一个关键字。

“hello”是一个表达式,但列表压缩反对这一点。

下面是一个表达式语句,它在没有列表理解的情况下是正确的:

(x*2 for x in range(10))

语句表示动作或命令,例如打印语句、赋值语句。

print 'hello', x = 1

表达式是产生结果值的变量、操作和值的组合。

5 * 5 # yields 25

最后,表达式语句

print 5*5

表达式转换为值。

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


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

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


注意事项:

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