在Python中,表达式和语句之间有什么区别?
Expressions只包含identifiers,literals和operators,其中运算符包含算术运算符和布尔运算符,函数call operator () 与subscription operator [] 类似,并且可以简化为某种"value",它可以是任何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
Expression - 来自我的字典:
表达式:数学联合表达数量的符号集合:圆周长的表达式为2πr .
总的来说: Expressions produce at least one value.
在Python中,表达式在_710902中被广泛涵盖 . 通常,Python中的表达式由Atoms,Primaries和Operators的语法合法组合组成 .
Python expressions from Wikipedia
表达的例子:
Literals和语法正确的组合与Operators和built-in functions或用户编写函数的调用:
>>> 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
来自维基百科的 Statement :
在计算机编程中,语句可以被认为是命令式编程语言中最小的独立元素 . 程序由一个或多个语句的序列组成 . 语句将具有内部组件(例如,表达式) .
Python statements from Wikipedia
总的来说: Statements Do Something 并且通常由表达式(或其他语句)组成
Python语言参考广泛涵盖Simple Statements和Compound Statements .
然而,“陈述做某事”和“表达产生 Value ”区别的区别可能变得模糊:
List Comprehensions被认为是"Expressions"但它们有循环结构,因此也有做某事 .
if 通常是一个语句,例如 if x<0: x=0 但你也可以使用conditional expression,就像表达式 x=0 if x<0 else 1 . 在其他语言中,如C,这个表单被称为像这样的运算符 x=x<0?0:1;
if
if x<0: x=0
x=0 if x<0 else 1
x=x<0?0:1;
您可以通过编写函数来编写自己的表达式 . def func(a): return a*a 是一个使用时的表达式,但在定义时由语句组成 .
def func(a): return a*a
返回 None 的表达式是Python中的一个过程: def proc(): pass 从语法上讲,您可以使用 proc() 作为表达式,但这可能是一个错误......
None
def proc(): pass
proc()
Python比表达式和Statement之间的差异更严格 . 在C中,任何表达式都是合法的陈述 . 你可以 func(x=2); 这是表达式还是声明? (Answer: Expression used as a Statement with a side-effect.)表单 func(x=2) 在Python中是非法的(或者至少它具有不同的含义 func(a=3) 将命名参数 a 设置为3)
func(x=2);
func(x=2)
func(a=3)
a
虽然这与Python无关:
expression 求值为一个值 . statement 做了些什么 .
expression
statement
>>> x = 1 >>> y = x + 1 # an expression >>> print y # a statement (in 2.x) 2
语句表示一个动作或命令,例如print语句,赋值语句 .
print 'hello', x = 1
表达式是产生结果值的变量,操作和值的组合 .
5 * 5 # yields 25
最后,表达陈述
print 5*5
表达式可以减少为某个值,例如 "1+3" 或 "foo = 1+3" .
"1+3"
"foo = 1+3"
这很容易检查:
print foo = 1+3
如果它不起作用,它就是一个声明,如果是的话,它就是一个表达式 .
另一个声明可能是:
class Foo(Bar): pass
因为它不能减少到一个值 .
表达式是一个返回值的语句 . 因此,如果它可以出现在赋值的右侧,或者作为方法调用的参数,则它是一个表达式 .
某些代码既可以是表达式,也可以是语句,具体取决于上下文 . 当语言不明确时,语言可以有一种区分两者的方法 .
表达式是某种东西,而声明则是某种东西 .表达式也是一个语句,但它必须有一个返回 .
>>> 2 * 2 #expression >>> print(2 * 2) #statement
PS:解释器总是打印出所有表达式的值 .
语句包含关键字 .
表达式不包含关键字 .
print "hello" 是语句,因为 print 是关键字 .
print "hello"
print
"hello" 是一个表达式,但列表压缩是针对此的 .
"hello"
以下是表达式语句,没有列表理解就是如此:
(x*2 for x in range(10))
我认为表达式包含运算符操作数和保存操作结果的对象...例如
var sum = a + b;
但语句只是代码行(可能是表达式)或代码块...例如
fun printHello(name: String?): Unit { if (name != null) println("Hello ${name}") else println("Hi there!") // `return Unit` or `return` is optional
}
Expressions:
通过组合 objects 和 operators 形成表达式 .
objects
operators
表达式具有值,该值具有类型 .
简单表达式的语法: <object><operator><object>
<object><operator><object>
2.0 + 3 是一个表达式,其计算结果为 5.0 ,并且具有与之关联的类型 float .
2.0 + 3
5.0
float
Statements
陈述由表达式组成 . 它可以跨越多个线 .
简单来说:语句由一个或多个表达式组成,而表达式由一个或多个标识符(名称),字面值和运算符组成 .
Python调用表达式“表达式语句”,因此问题可能没有完全形成 .
语句包含几乎可以在Python中执行的任何操作:计算值,分配值,删除变量,打印值,从函数返回,引发异常等 . 完整列表位于:http://docs.python.org/reference/simple_stmts.html#
表达式语句限于调用函数(例如,math.cos(theta)“),运算符(例如,”2 3“)等以产生值 .
12 回答
Expressions只包含identifiers,literals和operators,其中运算符包含算术运算符和布尔运算符,函数call operator
()
与subscription operator[]
类似,并且可以简化为某种"value",它可以是任何Python对象 . 例子:另一方面,语句(参见1,2)是构成Python代码行(或几行)的所有内容 . 请注意,表达式也是语句 . 例子:
Expression - 来自我的字典:
总的来说: Expressions produce at least one value.
在Python中,表达式在_710902中被广泛涵盖 . 通常,Python中的表达式由Atoms,Primaries和Operators的语法合法组合组成 .
Python expressions from Wikipedia
表达的例子:
Literals和语法正确的组合与Operators和built-in functions或用户编写函数的调用:
来自维基百科的 Statement :
Python statements from Wikipedia
总的来说: Statements Do Something 并且通常由表达式(或其他语句)组成
Python语言参考广泛涵盖Simple Statements和Compound Statements .
然而,“陈述做某事”和“表达产生 Value ”区别的区别可能变得模糊:
List Comprehensions被认为是"Expressions"但它们有循环结构,因此也有做某事 .
if
通常是一个语句,例如if x<0: x=0
但你也可以使用conditional expression,就像表达式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比表达式和Statement之间的差异更严格 . 在C中,任何表达式都是合法的陈述 . 你可以
func(x=2);
这是表达式还是声明? (Answer: Expression used as a Statement with a side-effect.)表单func(x=2)
在Python中是非法的(或者至少它具有不同的含义func(a=3)
将命名参数a
设置为3)虽然这与Python无关:
expression
求值为一个值 .statement
做了些什么 .语句表示一个动作或命令,例如print语句,赋值语句 .
表达式是产生结果值的变量,操作和值的组合 .
最后,表达陈述
表达式可以减少为某个值,例如
"1+3"
或"foo = 1+3"
.这很容易检查:
如果它不起作用,它就是一个声明,如果是的话,它就是一个表达式 .
另一个声明可能是:
因为它不能减少到一个值 .
表达式是一个返回值的语句 . 因此,如果它可以出现在赋值的右侧,或者作为方法调用的参数,则它是一个表达式 .
某些代码既可以是表达式,也可以是语句,具体取决于上下文 . 当语言不明确时,语言可以有一种区分两者的方法 .
表达式是某种东西,而声明则是某种东西 .
表达式也是一个语句,但它必须有一个返回 .
PS:解释器总是打印出所有表达式的值 .
语句包含关键字 .
表达式不包含关键字 .
print "hello"
是语句,因为print
是关键字 ."hello"
是一个表达式,但列表压缩是针对此的 .以下是表达式语句,没有列表理解就是如此:
我认为表达式包含运算符操作数和保存操作结果的对象...例如
但语句只是代码行(可能是表达式)或代码块...例如
}
Expressions:
通过组合
objects
和operators
形成表达式 .表达式具有值,该值具有类型 .
简单表达式的语法:
<object><operator><object>
2.0 + 3
是一个表达式,其计算结果为5.0
,并且具有与之关联的类型float
.Statements
陈述由表达式组成 . 它可以跨越多个线 .
简单来说:语句由一个或多个表达式组成,而表达式由一个或多个标识符(名称),字面值和运算符组成 .
Python调用表达式“表达式语句”,因此问题可能没有完全形成 .
语句包含几乎可以在Python中执行的任何操作:计算值,分配值,删除变量,打印值,从函数返回,引发异常等 . 完整列表位于:http://docs.python.org/reference/simple_stmts.html#
表达式语句限于调用函数(例如,math.cos(theta)“),运算符(例如,”2 3“)等以产生值 .