在Python中,表达式和语句之间的区别是什么?
表达式是可以简化为值的东西,例如"1+3"是一个表达式,但"foo = 1+3"是不。
"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
另一方面,语句(参见, )是可以组成一行(或几行)Python代码的所有内容。注意,表达式也是语句。例子:
# all the above expressions print 42 if x: do_y() return a = 7
尽管这与Python无关:
expression
statement
>>> x + 2 # an expression >>> x = 1 # a statement >>> y = x + 1 # a statement >>> print y # a statement (in 2.x) 2
Python将表达式称为“表达式语句”,所以这个问题可能还没有完全形成。
一条语句包含你在Python中可以做的任何事情:计算值、赋值、删除变量、打印值、从函数返回、引发异常等等。完整列表在这里:http://docs.python.org/reference/simple_stmts.html#
表达式——来自新牛津美语词典:
表达式:数学一个集合 这些符号共同表达了 的表达式 圆的周长为2πr
总的来说:表达式至少产生一个值。
一般来说,Python中的表达式由语法上合法的原子、初选和运营商组合组成。
Wikipedia中的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
声明来自维基百科:
在计算机编程中,一个语句 可以被认为是最小的 命令的独立元素 编程语言。程序是 由一个或多个序列组成的 语句。声明将包含 内部组件(例如, 表达式). < / p >
来自维基百科的Python语句
一般来说:语句有所作为和通常由表达式(或其他语句)组成
Python语言参考广泛涵盖了简单的语句和复合语句。
“语句做某事”和“表达式产生值”的区别可能变得模糊:
if
if x<0: x=0
x=0 if x<0 else 1
x=x<0?0:1;
def func(a): return a*a
None
proc()
func(x=2);
func(x=2)
x=2
func
a
语句包含关键字。
表达式不包含关键字。
print "hello"是语句,因为print是一个关键字。
print "hello"
print
"hello"是一个表达式,但是列表压缩反对这个表达式。
"hello"
下面是一个表达式语句,它在没有列表理解的情况下是正确的:
(x*2 for x in range(10))
语句表示动作或命令,例如打印语句,赋值语句。
print 'hello', x = 1
表达式是产生结果值的变量、操作和值的组合。
5 * 5 # yields 25
最后,表达式语句
print 5*5
表达式:
objects
operators
<object><operator><object>
2.0 + 3是一个表达式,计算结果为5.0,并且有一个与之相关的类型float。
2.0 + 3
5.0
float
语句
语句由表达式组成。它可以跨越多行。
>>> 2 * 2 #expression >>> print(2 * 2) #statement
PS:解释器总是打印出所有表达式的值。
声明:
语句是执行某些操作的动作或命令。例:if - else,循环…等等
val a: Int = 5 If(a>5) print("Hey!") else print("Hi!")
表达式是值、操作符和字面量的组合,可以产生一些东西。
val a: Int = 5 + 5 #yields 10
前面的语句可以改变Python程序的状态:创建或更新变量,定义函数,等等。
表达式只是返回一些值,不能改变函数中的全局状态或局部状态。
但是现在我们得到:=,它是一个外星人!
:=
表达式总是求值,而语句则不是。
如。
变量声明和赋值是语句,因为它们不返回值
const list = [1,2,3];
const sum = list.reduce((a, b)=> a+ b, 0);
函数调用、算术运算和布尔运算都是表达式的好例子。
表达式通常是语句的一部分。
通常需要区分这两者,以表明我们是否需要一段代码来返回一个值。
2.3表达式和语句- thinkpython2 by Allen B. Downey
2.10。《陈述和表达——如何像计算机科学家一样思考》作者:Paul Resnick和Brad Miller
>>> 42 42 >>> n 17 >>> n + 25 42
当你在提示符下输入一个表达式时,解释器计算它,这意味着 它查找表达式的值。在本例中,n的值为17,n + 25的值为 价值42。< / p >
>>> n = 17 >>> print(n)
第一行是赋值语句,为n赋值。第二行是打印 语句,显示n的值。 当你输入一个语句时,解释器执行它,这意味着它会做任何事情 声明说。一般来说,语句没有值
表达式转换为一个值。
声明消耗一个值*来产生一个结果**。
*包含一个空值,如:print()或pop()。
print()
pop()
**这个结果可以是任何改变某事的动作;例如,改变内存(x = 1)或改变屏幕上的某些东西(打印("x"))。
注意事项: