Answers:
表达式仅包含标识符,文字和运算符,其中的运算符包括算术运算符和布尔运算符,函数调用运算符 ()
包括预订运算符 []
等,并且可以简化为某种“值”,可以是任何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
print("Hello world!")
或)是很常见的my_list.append(42)
。
a = yield 7
有效,yield 7
就是一个表达。很久以前,它yield
是作为一种声明引入的,但在PEP 342中被推广为一个表达式。
表达 -来自新牛津美国词典:
expression(数学表达式):数学上共同表示一个数量的一组符号:圆的圆周的表达式为2πr。
总的来说:表达式产生至少一个值。
在Python中,表达式在Python语言参考中得到了广泛的介绍。通常,Python中的表达式由Atoms,Primary和Operators的语法合法组合组成。
表达式示例:
与操作符和内置函数或用户编写的函数的调用之间的文字和语法正确组合:
>>> 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
维基百科的声明:
在计算机编程中,可以将语句视为命令式编程语言中最小的独立元素。一个程序是由一个或多个语句的序列构成的。语句将具有内部组件(例如,表达式)。
总的来说:陈述做某事,通常由表达式(或其他陈述)组成
但是,“语句做某事”和“表达式产生值”的区别可能变得模糊:
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()
用作表达式,但这可能是一个错误...func(x=2);
“表达式”或“语句”吗?(答案:表达式用作带有副作用的语句。)Python x=2
中的函数调用内部的赋值语句仅在对C示例的调用func(x=2)
中将命名参数设置a
为2,func
并且比C示例受到更多限制。尽管这与Python不相关:
一个expression
值等于一个值。A statement
做某事。
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
somelist.append(123)
。实际上,大多数函数调用。
语句表示动作或命令,例如打印语句,赋值语句。
print 'hello', x = 1
表达式是变量,操作和值的组合,产生结果值。
5 * 5 # yields 25
最后,表达式语句
print 5*5
表达式是可以简化为值的内容,例如"1+3"
或"foo = 1+3"
。
很容易检查:
print foo = 1+3
如果不起作用,则为语句;如果不起作用,则为表达式。
另一种说法可能是:
class Foo(Bar): pass
因为它不能减少为一个值。
class Foo(bar):
是语句的开始,而不是完整的语句。
foo = 1+3
不是表达。这是一个声明(精确的分配)。该部分1+3
虽然是一个表达。
声明:
语句是执行某项操作的动作或命令。例如:If-Else,Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
表达:
表达式是值,运算符和文字的组合,产生某些结果。
val a: Int = 5 + 5 #yields 10
语句包含关键字。
表达式不包含关键字。
print "hello"
是语句,因为print
是关键字。
"hello"
是一个表达式,但是列表压缩与此相反。
以下是一个表达式语句,没有列表理解也是如此:
(x*2 for x in range(10))
x = 1
是一个非常好的语句,但不包含关键字。
is
是关键字,但x is y
不一定是语句(通常只是一个表达式)。
Python将表达式称为“表达式语句”,因此问题可能尚未完全形成。
语句几乎包含您可以在Python中执行的所有操作:计算值,分配值,删除变量,打印值,从函数返回,引发异常等。完整列表在此处:http:// docs.python.org/reference/simple_stmts.html#
表达式语句仅限于调用函数(例如math.cos(theta)“),运算符(例如“ 2 + 3”)等以产生值。