python---运算符

1、表达式

        表达式=操作数+运算符

2、运算符

####1、加减运算实现a、b交换
    a=1
    b=1
    a+=b
    b=a-b
    a-=b

###2、除法运算(/,%,//)除数不能为0,否则出错

###3、//运算规则:取小于或等于商的最大整数
        print(5.5 // 3.2)  #1
        print(5.5 // -3.2) #2,因为真实值为-1.XX,比它小的最大整数就是-2喽

###4、%取模(取余)运算规则:模=被除数-地板除的商*除数
        5.5 % 3.2  ###2.3 , 即:5.5-3.2*1=2.3   
        5.5 % -3.2 ###-0.9 ,即:5.5-(-3.2)*(-2)=-0.9

###5、 幂运算
        print('2 ** 3 =', 2 ** 3)
        print('2 ** 0 =', 2 ** 0)
        print('2 ** -1 =', 2 ** -1)
        print('2 ** 0.5 =', 2 ** 0.5)   # 开平方
        print('2 ** (1/3) =', 2 ** (1/3))  # 开立方
        # 负数开平方,在实数范围是无解的,而在复数范围内则有解
        print('(-2) ** 0.5 =', (-2) ** 0.5)  # (8.659560562354934e-17+1.4142135623730951j)
        # 幂运算不能导致除数为 0,否则运行时报错
        #print('0 ** -1 =', 0 ** -1)  # ZeroDivisionError: 0.0 cannot be raised to a negative power

###6、:=赋值运算符,=赋值操作符(:=组成表达式,=为语句)
       a=1  #赋值语句
       a:=1  #error,非语句
       a=1+(a=1) #error,赋值语句不能作为表达式操作数
       a=1+(a:=1) #赋值表达式
 
###7、比较运算符(优先级一致,不同于java,c)
    ##
        == #比较的是值,而不在乎是否是同一对象
    ##
        a,b,c=1,2,3
        a < c > b #相当于 a < c and c > b

###8、逻辑运算符
    and or not #not优先级最高
    ##
       a=1
       b=2
       c= a and b #c=2,未短路等于后面的值
    ##
       a=0
       b=2
       c=a and b #c=0,短路等于前面的值
    ##or同理

###9、身份运算符is(比较是否是同一对象,比的是id值)
    ##
        a=b=1
        a is b #True

###10、in运算符
    # 判断字符串
        s1 = 'hello'
        print('he' in s1)      # True
        print('HE' in s1)      # False
        print('HE' not in s1)  # True

    # 判断列表
        list1 = [1, 2, 3]
        print(1 in list1)      # True
        print(10 not in list1) # True

###11、位运算符
    ##|、&、^、~规律如下
        1 & x = x
        0 & x = 0

        1 | x = 1
        0 | x = x

        1 ^ x = ~x
        0 ^ x = x

    ##<<、>>左右移
        # 左移 3 位,右边空出 3 个位补 0
        # 左移 n 位,相当于乘以 2 的 n 次方
            print(1 << 3)            # 0b1000 -> 8

        # 右移 3 位,右边的 3 个位丢弃,左边补符号位(最高位 1 负数,0 正数)
        # 右移 n 位相当于这个数除以 2 的 n 次方
            print(0b1010 >> 3)

        # 对 num 的第 n 位置 1,置 1 模型
            num = 0b1001
            n = 2
            num |= 1 << n      # num = num | (1 << n)
            print(num)

        # 对 num 的第 6,2 位置 1,置 1 模型
            num |=((0x1f)<<2) #2-6置1,0x1f有5位,所以能改变6-2的所有位

        # 对 num 的第 n 位清 0,清 0 模型
            num = 0b1101
            n = 2
            num &= ~(1 << n)  # num = num & (~(1 << n))
            print(num)

        #对 num 的第 6,2 位清 0,清 0 模型
            num&=~((0x1f)<<2)#2-6置0

        # 对 num 的第 n 位取反,取反模型
            num = 0b1101
            n = 2
            num ^= 1 << n    # num = num ^ (1 << n)
            print(num)
        # #对 num 的第 6,2 位取反,取反模型
            num^=((0x1f)<<2) #2-6置0

###12、条件运算符

    # 条件运算符:op1 if op2 else op3
    # 运算符规则:
        1)先判断 op2,如果是 True 则返回 op1 的值
        2)False 就返回 op3
    #
        num1 = 11
        num2 = 2
        max = num1 if num1 > num2 else num2
        print('max = ', max) #11

    #
        num1, num2, num3 = 2, 3, 1
        max = (num1 if num1 > num3 else num3) if num1 > num2 else (num2 if num2 > num3 else num3)
        print('max = ', max) 33

###13、表达式列表
    >>> a=2,"3",4
    >>> a
    (2, '3', 4)
    >>> 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值