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


当前回答

声明:

语句是执行某些操作的动作或命令。例:if - else,循环…等等

val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")

表达式:

表达式是值、操作符和字面量的组合,可以产生一些东西。

val a: Int = 5 + 5 #yields 10

其他回答

表达式总是求值,而语句则不是。

e.g.

变量声明和赋值是语句,因为它们不返回值

const list = [1,2,3];

这里我们有两个操作数——左边是一个变量sum,右边是一个表达式。 整个代码是一个语句,但右边的部分是一个表达式,因为这段代码返回了一个值。

const sum = list.reduce((a, b)=> a+ b, 0);  

函数调用、算术运算和布尔运算都是表达式的好例子。

表达式通常是语句的一部分。

通常需要区分这两者,以表明我们是否需要一段代码来返回一个值。

表达式:

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

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

语句

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

参考文献

表达式和语句

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

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

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

3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7

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

# all the above expressions
print 42
if x: do_y()
return
a = 7