在Python中,表达式和语句之间的区别是什么?
当前回答
表达式总是求值,而语句则不是。
e.g.
变量声明和赋值是语句,因为它们不返回值
const list = [1,2,3];
这里我们有两个操作数——左边是一个变量sum,右边是一个表达式。 整个代码是一个语句,但右边的部分是一个表达式,因为这段代码返回了一个值。
const sum = list.reduce((a, b)=> a+ b, 0);
函数调用、算术运算和布尔运算都是表达式的好例子。
表达式通常是语句的一部分。
通常需要区分这两者,以表明我们是否需要一段代码来返回一个值。
其他回答
语句表示动作或命令,例如打印语句、赋值语句。
print 'hello', x = 1
表达式是产生结果值的变量、操作和值的组合。
5 * 5 # yields 25
最后,表达式语句
print 5*5
尽管这与Python无关:
表达式的计算结果是一个值。 语句做一些事情。
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
表达式是返回值的语句。因此,如果它可以出现在赋值操作的右侧,或者作为方法调用的参数,那么它就是一个表达式。 有些代码可以是表达式,也可以是语句,这取决于上下文。当这两者模棱两可时,语言可能有一种方法来区分它们。
表达——摘自《新牛津美语词典》:
数学是一个集合 这些符号共同表达了 的表达式 圆的周长是2πr。
一般来说:表达式至少产生一个值。
在Python中,表达式在Python语言参考中有广泛的介绍。通常,Python中的表达式由原子(Atoms)、基本元素(primary)和操作符(Operators)在语法上合法的组合组成。
来自维基百科的Python表达式
表达的例子:
文字和与操作符、内置函数或用户编写的函数的语法正确组合:
>>> 23
23
>>> 23l
23L
>>> range(4)
[0, 1, 2, 3]
>>> 2L*bin(2)
'0b100b10'
>>> def func(a): # Statement, just part of the example...
... return a*a # Statement...
...
>>> func(3)*4
36
>>> func(5) is func(a=5)
True
维基百科声明:
在计算机程序设计中,语句 可以被认为是最小的 命令的独立元素 编程语言。程序是 由一个或多个序列组成的 语句。声明将包含 内部组件(例如, 表达式)。
来自维基百科的Python语句
总的来说:语句做某事,通常由表达式(或其他语句)组成。
Python语言参考涵盖了简单语句和复合语句。
“语句做某事”和“表达式产生值”的区别可能变得模糊:
List Comprehensions are considered "Expressions" but they have looping constructs and therfore also Do Something. The if is usually a statement, such as if x<0: x=0 but you can also have a conditional expression like x=0 if x<0 else 1 that are expressions. In other languages, like C, this form is called an operator like this x=x<0?0:1; You can write you own Expressions by writing a function. def func(a): return a*a is an expression when used but made up of statements when defined. An expression that returns None is a procedure in Python: def proc(): pass Syntactically, you can use proc() as an expression, but that is probably a bug... Python is a bit more strict than say C is on the differences between an Expression and Statement. In C, any expression is a legal statement. You can have func(x=2); Is that an Expression or Statement? (Answer: Expression used as a Statement with a side-effect.) The assignment statement of x=2 inside of the function call of func(x=2) in Python sets the named argument a to 2 only in the call to func and is more limited than the C example.
表达式:
表达式由对象和运算符组合而成。 表达式有一个值,值有一个类型。 简单表达式的语法:<object><operator><object>
2.0 + 3是一个计算结果为5.0的表达式,并且有一个与之关联的类型浮点数。
语句
语句由表达式组成。它可以跨越多行。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录