首页 文章

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

提问于
浏览
258

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

12 回答

  • 94

    Expressions只包含identifiersliteralsoperators,其中运算符包含算术运算符和布尔运算符,函数call operator ()subscription operator [] 类似,并且可以简化为某种"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
    
  • 195

    Expression - 来自我的字典:

    表达式:数学联合表达数量的符号集合:圆周长的表达式为2πr .

    总的来说: Expressions produce at least one value.

    在Python中,表达式在_710902中被广泛涵盖 . 通常,Python中的表达式由AtomsPrimariesOperators的语法合法组合组成 .

    Python expressions from Wikipedia

    表达的例子:

    Literals和语法正确的组合与Operatorsbuilt-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 StatementsCompound 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)

  • 57

    虽然这与Python无关:

    expression 求值为一个值 . statement 做了些什么 .

    >>> x = 1
    >>> y = x + 1     # an expression
    >>> print y       # a statement (in 2.x)
    2
    
  • 0

    语句表示一个动作或命令,例如print语句,赋值语句 .

    print 'hello', x = 1
    

    表达式是产生结果值的变量,操作和值的组合 .

    5 * 5 # yields 25
    

    最后,表达陈述

    print 5*5
    
  • 8

    表达式可以减少为某个值,例如 "1+3""foo = 1+3" .

    这很容易检查:

    print foo = 1+3
    

    如果它不起作用,它就是一个声明,如果是的话,它就是一个表达式 .

    另一个声明可能是:

    class Foo(Bar): pass
    

    因为它不能减少到一个值 .

  • 2
    • 表达式是一个返回值的语句 . 因此,如果它可以出现在赋值的右侧,或者作为方法调用的参数,则它是一个表达式 .

    • 某些代码既可以是表达式,也可以是语句,具体取决于上下文 . 当语言不明确时,语言可以有一种区分两者的方法 .

  • 3

    表达式是某种东西,而声明则是某种东西 .
    表达式也是一个语句,但它必须有一个返回 .

    >>> 2 * 2          #expression
    >>> print(2 * 2)     #statement
    

    PS:解释器总是打印出所有表达式的值 .

  • 0

    语句包含关键字 .

    表达式不包含关键字 .

    print "hello" 是语句,因为 print 是关键字 .

    "hello" 是一个表达式,但列表压缩是针对此的 .

    以下是表达式语句,没有列表理解就是如此:

    (x*2 for x in range(10))
    
  • 0

    我认为表达式包含运算符操作数和保存操作结果的对象...例如

    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
    

    }

  • 0

    Expressions:

    • 通过组合 objectsoperators 形成表达式 .

    • 表达式具有值,该值具有类型 .

    • 简单表达式的语法: <object><operator><object>

    2.0 + 3 是一个表达式,其计算结果为 5.0 ,并且具有与之关联的类型 float .

    Statements

    陈述由表达式组成 . 它可以跨越多个线 .

  • 3

    简单来说:语句由一个或多个表达式组成,而表达式由一个或多个标识符(名称),字面值和运算符组成 .

  • -1

    Python调用表达式“表达式语句”,因此问题可能没有完全形成 .

    语句包含几乎可以在Python中执行的任何操作:计算值,分配值,删除变量,打印值,从函数返回,引发异常等 . 完整列表位于:http://docs.python.org/reference/simple_stmts.html#

    表达式语句限于调用函数(例如,math.cos(theta)“),运算符(例如,”2 3“)等以产生值 .

相关问题