通常在变量上运行数学运算,然后将运算结果分配回该变量,因此存在此类表达式的捷径: a = 2
a = a * 3
可以写成: a = 2
a *= 3
请注意,它var = var operation expression 变为var operation= expression 。 评估单如果您有一个表达式,例如2 + 3 * 4 ,是先进行加法运算还是进行乘法运算?我们的中学数学告诉我们,乘法应该首先完成。这意味着乘法运算符的优先级高于加法运算符。 下表列出了Python的优先级表,从最低优先级(最小绑定)到最高优先级(最大绑定)。这意味着在给定的表达式中,Python首先将评估表中较低的运算符和表达式,然后才评估表中较高的运算符和表达式。 为了完整起见,提供了下表(摘自Python参考手册)。最好使用括号适当地对运算符和操作数进行分组,以便显式指定优先级。这使程序更具可读性。有关详细信息,请参见下面的更改评估顺序。 lambda :Lambda表达式if - else :条件表达式or :布尔值ORand :布尔ANDnot x :布尔非in, not in, is, is not, <, <=, >, >=, !=, == :比较,包括成员资格测试和身份测试| :按位或^ :按位异或& :按位与<<, >> : 转变+, - : 加减*, /, //, % :乘法,除法,底数除法和余数+x, -x, ~x :正,负,按位非** :求幂x[index], x[index:index], x(arguments...), x.attribute :订阅,切片,调用,属性参考(expressions...), [expressions...], {key: value...}, {expressions...} :绑定或元组显示,列表显示,字典显示,设置显示
我们还没有遇到过的运算符将在后面的章节中进行解释。 上表的同一行中列出了具有相同优先级的运算符。例如,+ 和- 具有相同的优先级。 更改评估顺序为了使表达式更具可读性,我们可以使用括号。例如,2 + (3 * 4) 绝对容易理解,而不是2 + 3 * 4 需要了解操作员优先级。与其他所有内容一样,括号应合理使用(不要过度使用),并且不应多余,如中所述(2 + (3 * 4)) 。 使用括号还有另一个好处-它可以帮助我们更改评估顺序。例如,如果您希望在表达式中的相乘之前先对加法求值,则可以编写类似的内容(2 + 3) * 4 。 关联性运算符通常从左到右关联。这意味着具有相同优先级的运算符将以从左到右的方式求值。例如,2 + 3 + 4 被评估为(2 + 3) + 4 。 表达方式示例(另存为expression.py ): length = 5
breadth = 2
area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))
输出: $ python expression.py
Area is 10
Perimeter is 14
这个怎么运作 矩形的长度和宽度以相同的名称存储在变量中。我们使用这些借助表达式来计算矩形的面积和周长。我们将表达式的结果存储length * breadth 在变量中area ,然后使用该print 函数将其打印出来。在第二种情况下,我们直接2 * (length + breadth) 在打印函数中使用表达式的值。 另外,请注意Python如何漂亮地打印输出。即使我们没有在'Area is' 和变量之间指定空格area ,Python也会为我们放置一个空格,以便我们获得干净的输出,并且程序以这种方式更具可读性(因为我们不必担心字符串之间的间距,用于输出)。这是Python如何使程序员的生活变得轻松的示例。 概括我们已经看到了如何使用运算符,操作数和表达式-这些是任何程序的基本构建块。接下来,我们将在程序中的using语句中看到如何利用它们。 |