(五)运算符

itmahy
itmahy
发布于 2024-01-19 / 34 阅读
0
0

(五)运算符

运算符(操作符)可以对一个或者多个值进行运算或者各种操作

运算符的分类:

  • 算术运算符

  • 赋值运算符

  • 关系运算符(比较运算符)

  • 逻辑运算符

  • 条件运算符(三元运算符)

1. 算数运算符

  • +:加法运算符

    如果是 Number 类型的相加,则是做加法运算,如果是字符串,则是拼接。

    >>> 'a' + 'bc'
    'abc'
    >>> 1 +3
    4
  • -:减法运算符

  • *:乘法运算符

    Number 类型的正常做乘法运算,如果是字符串,则是复制字符串

    >>> 5*6
    30
    >>> 'abc'*4
    'abcabcabcabc'
  • /:除法运算符,注意除数不能为 0

  • //:整除,只会保留整数位

    >>> 5 // 3
    1
    >>> 5 //2
    2
    >>>
  • **: 幂运算,求一个值的几次幂

    >>> 5 ** 2
    25
    >>> 2 ** 8
    256
    >>>
    # 求 9 的平方根
    >>> 9 ** 0.5
    3.0
    >>>
  • %:取模(取余数),求余数

    >>> 5 % 2
    1
    >>> 10 % 2
    0
    >>> 100 % 33
    1
    >>> 3 % 4
    3

2. 赋值运算符

  • =:赋值运算符可以将等号右侧的值赋值给左侧的变量 x = 2

  • +=: 相当于 x = x + 2

  • -=:相当于 x = x - 2

  • *=:相当于 x = x * 2

  • **=:相当于 x = x ** 2

  • /=:相当于 x = x / 2

  • //=:相当于 x = x // 2

  • %=:相当于 x = x % 2

    >>> x = 2
    >>> x += 2
    >>> x
    4
    >>> x -= 1
    >>> x
    3
    >>> x *= 4
    >>> x
    12
    >>> x **= 2
    >>> x
    144
    >>> x /= 2
    >>> x
    72.0
    >>> x //= 5
    >>> x
    14.0
    >>> x %= 3
    >>> x
    2.0
    >>>

3. 关系运算符(比较运算符)

用来比较两个值之间的关系,如果关系成立,则返回 True,否则返回 False。

  • >:大于号

  • >=:大于等于号

  • <:小于号

  • <=:小于等于号

  • ==:比较是否相等,相等和不等于比较的是对象的值,而不是对象的 id

  • !=:比较是否不相等

  • is: 比较两个对象是否是同一个对象,比较的是对象的 id

  • is not: 比较两个对象是否不是同一个对象,比较的也是对象的 id

    >>> 23 > 10
    True
    >>> 23 >= 12
    True
    >>> 23 >= 23
    True
    >>> 23 >= 45
    False
    >>> 23 < 10
    False
    >>> 23 <= 23
    True
    >>> 23 <= 19
    False
    >>> 23 == 23
    True
    >>> 23 ==34
    False
    >>> 'a' == 'c'
    False
    >>> 'a' == 'a'
    True
    >>> 'a' != 'a'
    False
    >>> 'a' != 'c'
    True
    >>> 1 == True
    True
    >>> 0 == False
    True
    >>> 1 == False
    False
    >>> a = 2
    >>> b = 2
    >>> a  is b
    True
    >>> a is not b
    False
    >>> c = 3
    >>> a is c
    False
    >>> a is not c
    True

在 Python 中可以对两个字符串进行比较,对字符串比较时,实际上比较的是字符串的 Unicode 编码,比较两个字符串的 Unicode 编码时,是逐位进行比较。意思是第一位跟第一位进行比较,如果第一位就大了,说明值大了注意:如果不希望比较两个值的 Unicode 编码值,进行类型转换即可。

>>> 'a' > 'b'
False
>>> 'a' < 'b'
True
>>> 'a' < 'b'
True
>>> 'a' <= 'b'
True
>>> 'a' >= 'b'
False
>>> 'abcv' < 'b'
True
>>> 'abcv' < 'a'
False

4. 逻辑运算符

主要用来进行逻辑运算。

  • not : 非

    not 可以对符号右侧的值进行非运算,是一个一元运算符。

    • 对于布尔值,非运算是取反操作

    • 对于非布尔值,非运算会先将其转换为布尔值,然后取反

    >>> a = True
    >>> a
    True
    >>> not a
    False
    >>> a
    True
    >>> a = not a
    >>> a
    False
    >>> a = "sdfsd"
    >>> a =  not a
    >>> a
    False
    >>> a
    False
    >>> a = True
    >>> a = not a
    >>> a
    False
    >>> a = ""
    >>> a = not a
    >>> a
    True
    >>> a = 0
    >>> a = not a
    >>> a
    True
    >>> a = 1
    >>> a = not a
    >>> a
    False
  • and:与

    只有满足两侧都是 True 的时候结果才是 True,只要有一个False 返回的都是 False。

    与运算是短路语句,如果第一个值为 False,则就不会执行第二个语句了,结果必定返回 False

    >>> a = True and True
    >>> a
    True
    >>> a = True and False
    >>> a
    False
    >>> a = False and False
    >>> a
    False
    >>>
    >>> True and print('1234')
    1234
    >>> False and print('1234')
    False
  • or :或

    两侧的值只要有一个为 True,则返回 True。

    或运算也是短路语句,如果第一个值为 True,则就不会执行第二个语句了,结果必定返回 True

    >>> True or False
    True
    >>> False or True
    True
    >>> False or False
    False
    >>> True or True
    True
    >>> False or print('123')
    123
    >>> True or print('123')
    True
  • 非布尔值的逻辑运算

    当我们对非布尔值进行逻辑运算时,Python 会将其当作布尔值运算,最终返回返回原值

    因为 与 运算找 False, 或运算是找 True,0 跟 1 分别表示 False 和 True

    • 与运算的规则

      如果第一个值为False,则直接返回 第一个值,否则返回第二个值,如果第一个值为 True,则返回 第二个值,如果没有False,返回第二个值

    • 或运算的规则

      如果第一个值为True,则直接返回第一个值,否则返回第二个值,如果第一个值为False,则返回第二个值,如果没有 True,返回第二个值

      >>> 1 and 2
      2
      >>> 2 and 0
      0
      >>> 0 and 2
      0
      >>> 1 and 2
      2
      >>> 2 and 1
      1
      >>> "" and 1
      ''
      >>> 2 and 3
      3
      >>> 3 or 34
      3
      >>> 0 or 23
      23
      >>> 1 or 23
      1

5. 条件运算符(三元运算符)

语法: 语句1 if 条件表达式 else 语句2

条件运算符在执行时,会先对条件表达式求值进行判断,如果判断为 True,则执行第一个语句,如果为False,则执行第二个语句。

>>> print('123') if True else print('abc')
123
>>> print('123') if False else print('abc')
abc
>>> a = 10
>>> b = 20
>>> c = 30
>>> a if a > b and a > c else b if b > c else c
30

6. 运算符的优先级



评论