Python入门三运算符和表达式

以下是可用运算符的快速概述:

  • + (加)

    • 添加两个对象
    • 3 + 5 输出 8'a' + 'b'输出'ab'
  • - (减去)

    • 给另一个数字减去一个数字; 如果第一个操作数不存在则假定为零。
    • 50 - 24 输出 26
  • * (乘)

    • 给出两个数字的乘法或返回多次重复的字符串。
    • 2 * 3 输出 6'la' * 3  输出 'lalala'
  • ** (功率)

    • 将x返回到y的幂
    • 3 ** 4 输出 81(即3 * 3 * 3 * 3
  • / (划分)

    • 将x除以y
    • 13 / 3 输出 4.333333333333333
  • // (分和楼)

    • 将x除以y并将答案向下舍入到最接近的整数值。请注意,如果其中一个值是浮点数,您将返回浮点数。
    • 13 // 3 输出 4
    • -13 // 3 输出 -5
    • 9//1.81 输出 4.0
  • % (模)

    • 返回除法的余数
    • 13 % 3 输出 1-25.5 % 2.25 输出 1.5
  • << (左移)

    • 将数字位向左移动指定的位数。(每个数字在内存中用位或二进制数字表示,即0和1)
    • 2 << 2 输出 8210位表示。
    • 左移2位1000表示小数8
  • >> (右移)

    • 将数字的位向右移动指定的位数。
    • 11 >> 1 输出 5
    • 11以位表示1011,当右移1位时给出101小数5
  • & (按位和)

    • 比特和数字
    • 5 & 3 输出 1
  • | (按位或)

    • 数字的按位OR
    • 5 | 3 输出 7
  • ^ (按位异或)

    • 数字的按位异或
    • 5 ^ 3 输出 6
  • ~ (逐位反转)

  • < (小于)

    • 返回x是否小于y。所有比较运算符返回TrueFalse。请注意这些名称的大小写。
    • 5 < 3给予False3 < 5 输出 True
    • 比较可以任意链接:3 < 5 < 7 输出 True
  • > (大于)

    • 返回x是否大于y
    • 5 > 3 输出 True。如果两个操作数都是数字,则首先将它们转换为通用类型。否则,它总是返回False
  • <= (小于等于)

    • 返回x是否小于等于y
    • x = 3; y = 6; x <= y 输出 True
  • >= (大于等于)

    • 返回x是否大于或等于y
    • x = 4; y = 3; x >= 3 输出 True
  • == (等于)

    • 比较对象是否相等
    • x = 2; y = 2; x == y  输出 True
    • x = 'str'; y = 'stR'; x == y 输出 False
    • x = 'str'; y = 'str'; x == y 输出 True
  • != (不等于)

    • 比较对象是否不相等
    • x = 2; y = 3; x != y 输出True
  • not (布尔NOT 相当于java中的 ! 符号)

    • 如果是True,则返回False。如果是False,则返回True
    • x = True; not x回报False
  • and (布尔AND 相当于java中的 && 符号)

    • x = False; y = True; x and y返回,False因为x为False。在这种情况下,Python不会评估y,因为它知道'和'表达式的左侧是False暗示整个表达式False与其他值无关。这称为短路评估。
    • 两个值都为True才返回True,有一个False则返回False
  • or (布尔OR  相当于java中的 || 符号)

    • x = True; y = False; x or y回报True。短路评估也适用于此。
    • 有一个为True则返回True

数学运算和赋值的快捷方式

通常对变量运行数学运算,然后将运算结果赋给变量,因此这些表达式有一个快捷方式:

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 :布尔OR
  • and :布尔AND
  • not x :布尔NOT
  • in, not in, is, is not, <, <=, >, >=, !=, == :比较,包括成员资格测试和身份测试
  • | :按位OR
  • ^ :按位异或
  • & :按位AND
  • <<, >> : 位移
  • +, - : 加减
  • *, /, //, % :乘法,除法,分区和取模
  • +x, -x, ~x :正,负,按位NOT
  • ** :指数
  • 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)在print函数中使用表达式的值。

另外,请注意Python如何打印输出。即使我们没有'Area is'在变量和变量之间指定空格area,Python 也会为我们提供一个干净的输出,并且程序更加可读(因为我们不需要担心字符串中的间距)用于输出)。这是Python如何让程序员轻松生活的一个例子。

猜你喜欢

转载自blog.csdn.net/yongqi_wang/article/details/83412121