Python 中的表达式和语句有什么区别?

新手上路,请多包涵

在 Python 中,表达式和语句有什么区别?

原文由 wassimans 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
2 个回答

表达式 只包含 标识符字面量运算符,其中运算符包括算术运算符和布尔运算符、函数 调用运算符 () 订阅运算符 [] 以及类似的,并且可以简化为某种“ value”,它可以是任何 Python 对象。例子:

 3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7

另一方面,语句(请参阅 12 )是可以构成一行(或几行)Python 代码的所有内容。请注意,表达式也是语句。例子:

 # all the above expressions
print 42
if x: do_y()
return
a = 7

原文由 Sven Marnach 发布,翻译遵循 CC BY-SA 3.0 许可协议

表达——来自 _新牛津美语词典_:

表达式: 数学 符号的集合,共同表示一个量:圆的周长的表达式是2πr。

概括地说: 表达式至少产生一个值。

在 Python 中,表达式在 Python Language Reference 中有广泛的介绍。一般来说,Python 中的表达式由 AtomsPrimariesOperators 的语法合法组合组成。

来自维基百科的 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 语言参考广泛涵盖了 简单语句复合语句

然而,“语句做某事”和“表达式产生一个值”的区别可能变得模糊:

  • 列表理解 被认为是“表达式”,但它们具有循环结构,因此也可以做一些事情。
  • 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 在表达式和语句之间的区别上比说 C 更严格。在 C 中,任何表达式都是合法的语句。你可以有 func(x=2); 那是表达式还是语句? ( 答案:用作具有副作用的语句的表达式。x=2 函数调用内部的赋值语句 func(x=2) 在 Python 中设置命名参数 a 仅在调用 func 时为 2,并且比 C 示例更受限制。

原文由 dawg 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏