What is the difference between an expression and a statement in Python?
在Python中,表达式和语句之间的区别是什么?
表达式只包含标识符、文本和运算符,其中运算符包括算术和布尔运算符、函数调用运算符
1 2 3 4 | 3 + 5 map(lambda x: x*x, range(10)) [a.x for a in some_iterable] yield 7 |
另一方面,语句(参见1,2)是可以组成一行(或多行)Python代码的所有内容。注意,表达式也是语句。实例:
1 2 3 4 5 | # all the above expressions print 42 if x: do_y() return a = 7 |
表达式——来自我的字典:
expression: Mathematics a collection
of symbols that jointly express a
quantity : the expression for the
circumference of a circle is 2πr.
总的来说:表达式至少产生一个值。
在python中,表达式在python语言引用中被广泛覆盖,通常,python中的表达式由原子、主元素和运算符的语法合法组合组成。
维基百科的python表达式
表达式示例:
与运算符和内置函数或用户编写函数的调用的文字和语法正确组合:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> 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 |
维基百科的声明:
In computer programming a statement
can be thought of as the smallest
standalone element of an imperative
programming language. A program is
formed by a sequence of one or more
statements. A statement will have
internal components (e.g.,
expressions).
维基百科的python语句
总的来说:陈述可以做一些事情,通常由表达(或其他陈述)组成。
python语言参考广泛涵盖简单语句和复合语句。
但是,"语句做某事"和"表达式产生值"的区别可能变得模糊:
- 列表理解被认为是"表达式",但它们有循环结构,因此也可以做一些事情。
if 通常是一个语句,例如if x<0: x=0 ,但也可以有一个条件表达式,如x=0 if x<0 else 1 是表达式。在其他语言中,如c,这种形式被称为像x=x<0?0:1; 这样的运算符。- 您可以通过编写函数来编写自己的表达式。
def func(a): return a*a 是一个使用时的表达式,但在定义时由语句组成。 - 返回
None 的表达式是python中的一个过程:def proc(): pass 在语法上,可以使用proc() 作为表达式,但这可能是一个错误… - python比say c对表达式和语句之间的区别更严格。在C语言中,任何表达都是法律声明。你可以用
func(x=2); 这是表达式还是语句?(回答:用作有副作用的陈述的表达式)func(x=2) 的形式在python中是非法的(或者至少它有不同的含义func(a=3) 将命名参数a 设置为3)
尽管这与python无关:
1 2 3 4 | >>> x = 1 >>> y = x + 1 # an expression >>> print y # a statement (in 2.x) 2 |
语句表示操作或命令,例如打印语句、分配语句。
1 | print 'hello', x = 1 |
表达式是变量、操作和值的组合,生成结果值。
1 | 5 * 5 # yields 25 |
最后,表达式语句
1 | print 5*5 |
表达式是一种东西,而语句是一种东西。表达式也是语句,但它必须有返回。
1 2 | >>> 2 * 2 #expression >>> print(2 * 2) #statement |
PS:解释器总是打印出所有表达式的值。
一个表达式是可以减少为一个值的东西,例如
很容易检查:
1 | print foo = 1+3 |
如果它不起作用,它就是一个声明,如果起作用,它就是一个表达式。
另一种说法可能是:
1 | class Foo(Bar): pass |
因为它不能减少到一个值。
声明:
语句是执行某项操作或命令。例如:否则,循环等
1 2 | val a: Int = 5 If(a>5) print("Hey!") else print("Hi!") |
表达式:
表达式是值、运算符和文本的组合,可以产生一些东西。
1 | val a: Int = 5 + 5 #yields 10 |
表达:
- 表达式由
objects 和operators 组合而成。 - 表达式具有值,该值具有类型。
- 简单表达式的语法:
。
声明
语句由表达式组成。它可以跨越多条线。
语句包含关键字。
表达式不包含关键字。
以下是表达式语句,如果不理解列表,则为真:
1 | (x*2 for x in range(10)) |
我认为表达式包含运算符+操作数和保存操作结果的对象…例如
1 | var sum = a + b; |
但语句只是一行代码(可能是表达式)或一块代码…例如
1 2 3 4 5 6 | fun printHello(name: String?): Unit { if (name != null) println("Hello ${name}") else println("Hi there!") // `return Unit` or `return` is optional |
}
python调用表达式"expression statements",因此问题可能没有完全形成。
语句包含在python中可以执行的几乎所有操作:计算值、分配值、删除变量、打印值、从函数返回、引发异常等。完整的列表如下:http://docs.python.org/reference/simplestmts.html#
表达式语句仅限于调用函数(例如,math.cos(theta)"、运算符(例如,"2+3")等,以生成值。