在Python中,表达式和语句之间的区别是什么?
当前回答
表达式是返回值的语句。因此,如果它可以出现在赋值操作的右侧,或者作为方法调用的参数,那么它就是一个表达式。 有些代码可以是表达式,也可以是语句,这取决于上下文。当这两者模棱两可时,语言可能有一种方法来区分它们。
其他回答
表达式总是求值,而语句则不是。
e.g.
变量声明和赋值是语句,因为它们不返回值
const list = [1,2,3];
这里我们有两个操作数——左边是一个变量sum,右边是一个表达式。 整个代码是一个语句,但右边的部分是一个表达式,因为这段代码返回了一个值。
const sum = list.reduce((a, b)=> a+ b, 0);
函数调用、算术运算和布尔运算都是表达式的好例子。
表达式通常是语句的一部分。
通常需要区分这两者,以表明我们是否需要一段代码来返回一个值。
表达式是返回值的语句。因此,如果它可以出现在赋值操作的右侧,或者作为方法调用的参数,那么它就是一个表达式。 有些代码可以是表达式,也可以是语句,这取决于上下文。当这两者模棱两可时,语言可能有一种方法来区分它们。
表达式是某种东西,而语句是某种东西。 表达式也是语句,但它必须有一个返回值。
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS:解释器总是打印出所有表达式的值。
语句包含关键字。
表达式不包含关键字。
打印“hello”是语句,因为打印是一个关键字。
“hello”是一个表达式,但列表压缩反对这一点。
下面是一个表达式语句,它在没有列表理解的情况下是正确的:
(x*2 for x in range(10))
表达式只包含标识符、文字和操作符,其中操作符包括算术运算符和布尔运算符、函数调用运算符()、订阅运算符[]等,并且可以简化为某种“值”,可以是任何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
推荐文章
- 如何在Python中进行热编码?
- 如何嵌入HTML到IPython输出?
- 在Python生成器上使用“send”函数的目的是什么?
- 是否可以将已编译的.pyc文件反编译为.py文件?
- Django模型表单对象的自动创建日期
- 在Python中包装长行
- 如何计算两个时间串之间的时间间隔
- 我如何才能找到一个Python函数的参数的数量?
- 您可以使用生成器函数来做什么?
- 将Python诗歌与Docker集成
- 提取和保存视频帧
- 使用请求包时出现SSL InsecurePlatform错误
- 如何检索Pandas数据帧中的列数?
- except:和except的区别:
- 错误:“字典更新序列元素#0的长度为1;2是必需的”