• python运算符


    Python支持以下类型的运算符:

    • 算术运算符
    • 比较(关系)运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算符
    • 成员运算符
    • 身份运算符

    真值表

    算术运算符

    表格内假设变量a为10、变量b为3

    运算符 描述 实例
    + 加--两个对象相加 a+b输出结果为13
    - 减--得到负数或一个数减去另一个数 a-b输出结果为7
    * 乘--两个数相乘或返回一个被重复若干次的字符串 a*b输出结果为30
    / 除--两个数相除 a/b输出结果为3.3333333333333335
    % 取模--返回除法的余数 a%b输出结果为1
    ** 幂--返回a的y次幂 a**b输出结果为a的b次方=1000
    // 整除--返回除法的商 a//b输出结果为3

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 10
    b = 3
    c = 0
    
    c = a + b
    print("1 - c 的值为:", c)
    
    c = a - b
    print("2 - c 的值为:", c)
    
    c = a * b
    print("3 - c 的值为:", c)
    
    c = a / b
    print("4 - c 的值为:", c)
    
    c = a % b
    print("5 - c 的值为:", c)
    
    c = a ** b
    print("6 - c 的值为:", c)
    
    c = a // b
    print("7 - c 的值为:", c)

    实例结果:

    1 - c 的值为: 13
    2 - c 的值为: 7
    3 - c 的值为: 30
    4 - c 的值为: 3.3333333333333335
    5 - c 的值为: 1
    6 - c 的值为: 1000
    7 - c 的值为: 3

    比较运算符

    下表中的变量a为30、变量b为26

    运算符 描述 实例
    == 等于--比较对象是否相等 ( a == b )返回False
    != 不等于--比较两个对象是否不相等 ( a != b )返回True
    > 大于--比较一个对象是否大于另一个对象 ( a > b )返回True
    < 小于--比较一个对象是否小于另一个对象 ( a < b )返回False
    >= 大于等于--比较一个对象是否大于或等于另一个对象 ( a >= b )返回True
    <= 小于等于--比较一个对象是否小于或等于另一个对象 ( a <= b )返回False

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 30
    b = 26
    
    if a == b:
        print("1 - a 等于 b")
    else:
        print("1 - a 不等于 b")
    
    if a != b:
        print("2 - a 不等于 b")
    else:
        print("2 - a 等于 b")
    
    if a < b:
        print("3 - a 小于 b")
    else:
        print("3 - a 大于等于 b")
    
    if a > b:
        print("4 - a 大于 b")
    else:
        print("4 - a 小于等于 b")
    
    if a <= b:
        print("5 - a 小于等于 b")
    else:
        print("5 - a 大于  b")
    
    if b >= a:
        print("6 - b 大于等于 b")
    else:
        print("6 - b 小于 b")

    实例结果:

    1 - a 不等于 b
    2 - a 不等于 b
    3 - a 大于等于 b
    4 - a 大于 b
    5 - a 大于  b
    6 - b 小于 b

    赋值运算符

    下表中的变量a为10、变量b为3

    运算符 描述 实例
    = 赋值运算符 c = a + b :将a + b的运算结果赋值给c
    += 加法赋值运算符 c += a :等效于c = c + a
    -= 减法赋值运算符 c –= a :等效于c = c - a
    *= 乘法赋值运算符 c *= a :等效于c = c * a
    /= 除法赋值运算符 c /= a :等效于c = c / a
    %= 取模赋值运算符 c %= a :等效于c = c % a
    **= 幂赋值运算符 c **= a :等效于从= c ** a
    //= 取商赋值运算符 c //= a :等效于c = c // a

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 3
    b = 10
    
    c = a + b
    print("1 - c 的值为:", c)
    
    c = 20
    
    c += a
    print("2 - c 的值为:", c)
    
    c = 20
    
    c *= a
    print("3 - c 的值为:", c)
    
    c = 20
    
    c /= a
    print("4 - c 的值为:", c)
    
    c = 20
    
    c %= a
    print("5 - c 的值为:", c)
    
    c = 20
    
    c **= a
    print("6 - c 的值为:", c)
    
    c = 20
    
    c //= a
    print("7 - c 的值为:", c)

    实例结果:

    1 - c 的值为: 13
    2 - c 的值为: 23
    3 - c 的值为: 60
    4 - c 的值为: 6.666666666666667
    5 - c 的值为: 2
    6 - c 的值为: 8000
    7 - c 的值为: 6

    位运算符

    位运算符是把数字看做二进制来进行计算的

    下表中的变量a为60、变量b为13

    运算符 描述 实例
    & 按位与运算符--参加运算的两个值,如果两个相应为都为1,则该位的结果为1,否则为0 ( a & b )输出结果为12
    | 按位或运算符--只要两个对应的二进制位有一个为1时,结果位就为1 ( a | b )输出结果为61
    ^ 按位异或运算符--当两个对应的二进制位相异时,结果位为1 ( a ^ b )输出结果位49
    ~ 按位取反运算符--将二进制数+1之后乘以-1 ( ~ a )输出记过为-61、( ~ b )输出结果位-14
    << 按位左移运算符--运算数的各个二进制位向左移动若干位,由“<<”右边的数字指定移动的位数,高位丢弃,低位补0 ( a << 2 )输出结果为240
    ( b << 2 )输出结果为52
    >> 按位右移运算符--运算数的各个二进制位向右移动若干位,由“>>”右边的数字指定移动的位数, ( a >> 2 )输出结果为15
    ( b >> 2 )输出结果为3

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 60  # 60 = 0011 1100
    b = 13  # 13 = 0000 1101
    
    c = a & b
    # 60 = 0011 1100
    # 13 = 0000 1101
    # 按位与运算得到:0000 1100,换算为十进制:2**2 + 2**3=12
    print("1 - c 的值为:", c)
    
    c = a | b
    # 60 = 0011 1100
    # 13 = 0000 1101
    # 按位或运算得到:0011 1101,换算为十进制:2**0 + 2**2 + 2**3 + 2**4 + 2**5 = 61
    print("2 - c 的值为:", c)
    
    c = a ^ b  # 49 = 0011 0001
    # 60 = 0011 1100
    # 13 = 0000 1101
    # 按位异或运算得到:0011 0001,换算位为十进制:2**0 + 2**4 + 2**5 = 49
    print("3 - c 的值为:", c)
    
    c = ~a
    # 60 = 0011 1100
    # 按位取反运算得到:-0011 1101,换算为十进制:-(2**0 = 2**2 + 2**3 + 2**4 + 2**5)= -61
    print("4 - c 的值为:", c)
    
    c = a << 2
    # 60 = 0011 1100
    # 按位左移运算得到:1111 0000,换算为十进制:2**4 + 2**5 + 2**6 + 2**7 = 240
    print("5 - c 的值为:", c)
    
    c = a >> 2
    # 60 = 0011 1100
    # 按位左移运算得到:0000 1111,换算为十进制:2**0 + 2**1 + 2**2 + 2**3 = 15
    print("6 - c 的值为:", c)
    
    c = b>> 2
    # 13 = 0000 1101
    # 按位左移运算得到:0000 0011,换算为十进制:2**0 + 2**1 = 3
    print("7 - c 的值为:", c)

    实例结果:

    1 - c 的值为: 12
    2 - c 的值为: 61
    3 - c 的值为: 49
    4 - c 的值为: -61
    5 - c 的值为: 240
    6 - c 的值为: 15
    7 - c 的值为: 3

    逻辑运算符

    运算符 逻辑表达式 描述
    and x and y 逻辑“与”运算符--如果x、y都为真,则返回True,否则返回False
    or x or y 逻辑“或”运算符—如果x、y有一个为真,则返回True,否则返回False
    not not x 逻辑“非”运算符--如果x为真,则返回False,否则返回True

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = True
    b = False
    
    
    print(a and b)
    print(a or b)
    print(not a)
    print(not b)

    实例结果:

    False
    True
    False
    True

    成员运算符

    运算符 描述
    in 判断在值是否指定的序列中,是则返回True,否则返回False
    not in 判断在值是否不在指定的序列中,是则返回True,否则返回False

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 10
    b = 4
    list1 = [1, 2, 3, 4, 5]
    
    if a in list1:
        print("1 - 变量 a 在给定的列表中 list 中")
    else:
        print("1 - 变量 a 不在给定的列表中 list 中")
    
    if b not in list1:
        print("2 - 变量 b 不在给定的列表中 list 中")
    else:
        print("2 - 变量 b 在给定的列表中 list 中")
    
    # 修改变量 a 的值
    a = 2
    if a in list1:
        print("3 - 变量 a 在给定的列表中 list 中")
    else:
        print("3 - 变量 a 不在给定的列表中 list 中")

    实例结果:

    1 - 变量 a 不在给定的列表中 list 中
    2 - 变量 b 在给定的列表中 list 中
    3 - 变量 a 在给定的列表中 list 中

    身份运算符

    运算符 描述
    is is--判断两个标识符是不是引用自同一个对象
    is not is not--判断两个标识符是不是引用自不同的对象

    实例:

    #!/usr/bin/env python
    # coding=utf-8
    
    a = 20
    b = 20
    
    if a is b:
        print("1 - a 和 b 有相同的标识")
    else:
        print("1 - a 和 b 没有相同的标识")
    
    if id(a) == id(b):
        print("2 - a 和 b 有相同的标识")
    else:
        print("2 - a 和 b 没有相同的标识")
    
    # 修改变量 b 的值
    b = 30
    if a is b:
        print("3 - a 和 b 有相同的标识")
    else:
        print("3 - a 和 b 没有相同的标识")
    
    if a is not b:
        print("4 - a 和 b 没有相同的标识")
    else:
        print("4 - a 和 b 有相同的标识")

    实例结果:

    1 - a 和 b 有相同的标识
    2 - a 和 b 有相同的标识
    3 - a 和 b 没有相同的标识
    4 - a 和 b 没有相同的标识

    运算符优先级

    下表中从上到下的优先级为从高到低

    运算符 描述
    'string'
    字符串转换
    {key:value,…} 字典
    [string1,string2,…] 列表
    (string1,string2,…) 元组
    function(string,…) 函数调用
    x[index:index] 切片
    x[index] 下表索引取值
    x.attribute 属性引用
    x**y
    ~x 按位翻转
    +x、-x 正、负
    *、/、%、// 乘、除、取余、取商
    + 、- 加号、减号
    >>、<< 按位右移、按位左移
    & 按位与
    ^、| 按位异或、按位或
    >、<、>=、<=、!=、== 大于、小于、大于等于、小于等于、不等于、等于
    =、+=、-=、*=、**=、/=、%=、//= 赋值运算符
    is、is not 身份运算符
    in、not in 成员运算符
    not、or、and 逻辑运算符
    lambda Lambda表达式

    真值表

    对象/常量
    ""
    'string'
    0
    >=1
    <=-1
    ()空元组
    []空列表
    {}空字典
    None
  • 相关阅读:
    LG P4284 [SHOI2014]概率充电器
    LG P2592 [ZJOI2008]生日聚会
    LG P4953 [USACO02FEB]Cow Cycling
    LG P2389 电脑班的裁员
    LG P2344 [USACO11FEB]Generic Cow Protests G
    前端简历
    前端面试题目
    大前端的技术栈
    前端 -为什么要清楚浮动?
    Redis的功能实现
  • 原文地址:https://www.cnblogs.com/fujiangong/p/5672630.html
Copyright © 2020-2023  润新知