大锤python日记(python中的运算符)

146 阅读7分钟

Python中最常用的运算符,从简单到复杂:

1. 算术运算符

算术运算符用于执行基本数学运算,如加、减、乘、除等。

  • + 加法运算符:将两个操作数相加。

    a = 5
    b = 3
    c = a + b   # c = 8
    
  • - 减法运算符:将第二个操作数从第一个操作数中减去。

    a = 5
    b = 3
    c = a - b   # c = 2
    
  • * 乘法运算符:将两个操作数相乘。

    a = 5
    b = 3
    c = a * b   # c = 15
    
  • / 除法运算符:将第一个操作数除以第二个操作数。

    a = 6
    b = 3
    c = a / b   # c = 2.0
    
  • // 整除运算符:将第一个操作数除以第二个操作数,并返回结果的整数部分。

    a = 7
    b = 3
    c = a // b  # c = 2
    
  • % 取模运算符:将第一个操作数除以第二个操作数,并返回余数。

    a = 7
    b = 3
    c = a % b   # c = 1
    
  • ** 幂运算符:将第一个操作数的值提高到第二个操作数的幂。

    a = 2
    b = 3
    c = a ** b  # c = 8
    

2. 比较运算符

比较运算符用于比较两个值的大小或关系,通常返回布尔值True或False。

  • > 大于运算符:如果左操作数大于右操作数,则返回True,否则返回False。

    a = 5
    b = 3
    c = (a > b) # True
    
  • < 小于运算符:如果左操作数小于右操作数,则返回True,否则返回False。

    a = 5
    b = 3
    c = (a < b) # False
    
  • >= 大于等于运算符:如果左操作数大于或等于右操作数,则返回True,否则返回False。

    a = 5
    b = 3
    c = (a >= b)    # True
    
  • <= 小于等于运算符:如果左操作数小于或等于右操作数,则返回True,否则返回False。

    a = 5
    b = 3
    c = (a <= b)    # False
    
  • == 等于运算符:如果两个操作数相等,则返回True,否则返回False。

    a = 5
    b = 5
    c = (a == b)    # True
    
  • != 不等于运算符:如果两个操作数不相等,则返回True,否则返回False。

    a = 5
    b = 3
    c = (a != b)    # True
    

3. 逻辑运算符

逻辑运算符用于对布尔类型的变量进行操作,并返回一个布尔类型的值True或False。

  • and 与运算符:如果两个操作数都为True,则返回True;否则,返回False。

    a = 5
    b = 3
    c = (a > b) and (b < 4) # False
    
  • or 或运算符:如果两个操作数都为False,则返回False;否则,返回True。

    a = 5
    b = 3
    c = (a > b) or (b < 4)  # True
    
  • not 非运算符:如果操作数为True,则返回False;如果操作数为False,则返回True。

    a = 5
    b = 3
    c = not (a > b)    # False
    

4. 赋值运算符

赋值运算符用于将值赋给变量。

  • = 简单赋值运算符:将右侧的值赋给左侧的变量。

    x = 3   # 将3赋给变量x
    
  • += 加法赋值运算符:将左操作数加上右操作数,并将结果赋给左操作数。

    x = 3
    x += 2  # 等同于 x = x + 2, x现在的值为5
    
  • -= 减法赋值运算符:将左操作数减去右操作数,并将结果赋给左操作数。

    x = 5
    x -= 2  # 等同于 x = x - 2, x现在的值为3
    
  • *= 乘法赋值运算符:将左操作数乘以右操作数,并将结果赋给左操作数。

    x = 3
    x *= 2  # 等同于 x = x * 2, x现在的值为6
    
  • /= 除法赋值运算符:将左操作数除以右操作数,并将结果赋给左操作数。

    x = 6
    x /= 2  # 等同于 x = x / 2, x现在的值为3.0
    
  • %= 取模赋值运算符:将左操作数除以右操作数并取余数,并将结果赋给左操作数。

    x = 7
    x %= 3  # 等同于 x = x % 3, x现在的值为1
    

5. 位运算符

位运算符用于对二进制数字进行操作。

  • & 按位与运算符:将两个操作数的每一位都按位比较,如果相应位均为1,则该位的结果为1;否则,该位的结果为0。

    a = 5   # 二进制为101
    b = 3   # 二进制为011
    c = a & b   # 二进制为001,即1
    
  • | 按位或运算符:将两个操作数的每一位都按位比较,如果相应位有至少一个为1,则该位的结果为1;否则,该位的结果为0。

    a = 5   # 二进制为101
    b = 3   # 二进制为011
    c = a | b   # 二进制为111,即7
    
  • ^ 按位异或运算符:将两个操作数的每一位都按位比较,如果相应位只有一个为1,则该位的结果为1;否则,该位的结果为0。

    a = 5   # 二进制为101
    b = 3   # 二进制为011
    c = a ^ b   # 二进制为110,即6
    
  • ~ 按位取反运算符:将操作数的每一位都按位取反。注意:由于Python使用补码表示负数,在对负数进行按位取反时,需要先将负数的绝对值减1,然后再按位取反,最后将结果取负数。

    a = 5   # 二进制为101
    b = ~a  # 结果为-6,因为Python对负数采用补码表示方式
    
  • << 左移运算符:将左操作数向左移动右操作数指定的位数。左边缺少的位将用0填充。

    a = 5   # 二进制为101
    c = a << 2  # 二进制为10100,即20
    
  • >> 右移运算符:将左操作数向右移动右操作数指定的位数。右边缺少的位将用0填充。注意:由于Python使用补码表示负数,在对负数进行右移操作时,应该使用算术右移,即保留符号位不变,并在左侧补上符号位的值。

    a = 22  # 二进制为10110
    c = a >> 2  # 二进制为00101,即5
    b = -22 # 二进制为111010
    d = b >> 2 # 二进制为111110, 十进制为-6
    

6. 成员运算符

成员运算符用于检查一个序列(如字符串、列表或元组)中是否包含某个元素。

  • in 存在运算符:如果在指定的序列中找到了指定的值,则返回True;否则,返回False。

    a = [1, 2, 3, 4, 5]
    b = 3
    c = (b in a)    # True
    
  • not in 不存在运算符:如果在指定的序列中没有找到指定的值,则返回True;否则,返回False。

    a = [1, 2, 3, 4, 5]
    b = 6
    c = (b not in a)    # True
    

7. 身份运算符

身份运算符用于比较两个对象的内存地址(即它们是否引用同一个对象)。

  • is 是运算符:如果两个操作数引用同一个对象,则返回True;否则,返回False。

    a = [1, 2, 3]
    b = a
    c = (a is b)    # True
    
  • is not 不是运算符:如果两个操作数引用的不是同一个对象,则返回True;否则,返回False。

    a = [1, 2, 3]
    b = [1, 2, 3]
    c = (a is not b)    # True,因为a和b引用的不是同一个对象
    

这就是Python中的所有主要运算符。希望这份列表能够帮助您更好地理解Python编程语言。

8. 运算符优先级

当有多个运算符混合在一起时,Python遵循一定的优先级规则来确定哪些运算符应该先计算。下面是Python中常用的运算符优先级(从高到低):

  1. () 括号(最高优先级)
  2. ** 幂运算符
  3. *///% 算术运算符
  4. +- 算术运算符
  5. <<>> 位运算符
  6. & 位运算符
  7. ^| 位运算符
  8. <<=>>= 比较运算符
  9. ==!= 比较运算符
  10. =, +=, -=, *=, /=, //=, %=, **= 赋值运算符
  11. is, is not 身份运算符
  12. in, not in 成员运算符
  13. not 逻辑运算符
  14. and 逻辑运算符
  15. or 逻辑运算符(最低优先级)

当表达式中存在多个运算符时,Python将按照上述优先级顺序依次计算。如果需要改变优先级顺序,可以使用括号来明确指定计算顺序。

例如,对于以下表达式:

a = 5 + 6 * 2

因为乘法运算符的优先级高于加法运算符,所以Python会先计算6 * 2,结果为12,然后将5加上12,最终将结果17赋给变量a。

如果想让加法运算先执行,可以使用括号来改变优先级顺序:

a = (5 + 6) * 2

这样,Python会先计算括号中的加法运算,结果为11,然后将11乘以2,最终将结果22赋给变量a。

9. 其他运算符

除了上述常用的运算符外,Python还提供了一些其他的运算符。

  • . 属性访问符:用于访问对象的属性或方法。例如,object.property可以获取对象的属性值,object.method()可以调用对象的方法。

    my_string = "Hello, World!"
    length = my_string.upper().count('O')   # 计算字符串中大写字母'O'出现的次数
    
  • : 切片运算符:用于从序列中获取子序列。冒号前面的数字表示起始位置(包含该位置),冒号后面的数字表示结束位置(不包含该位置)。

    a = [1, 2, 3, 4, 5]
    b = a[1:3]  # 获取a列表中索引为1和2的元素,结果为[2, 3]
    
  • , 分隔符:用于分隔参数、元素等。

    print("Hello", "World") # 输出两个参数之间有空格的字符串"Hello World"
    a = [1, 2, 3, 4, 5]
    b = (1, 2, 3, 4, 5)
    
  • = 关键字:用于在函数定义时指定参数默认值、在循环语句中遍历列表等。

    def greet(name="World"):    # 定义带有默认参数的函数
        print(f"Hello, {name}!")
    greet()     # 输出"Hello, World!"
    greet("Alice")  # 输出"Hello, Alice!"
    
    for num in [1, 2, 3]:  # 循环遍历列表中的元素
        print(num)
    

这些运算符虽然不如常用运算符频繁使用,但它们在Python编程中也非常重要。