美文网首页
9-运算符

9-运算符

作者: ju7ran | 来源:发表于2019-03-26 19:14 被阅读0次

    运算符

    运算符:以1 + 2为例,1和2被称为操作数,“+” 称为运算符。

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

    1. 算术运算符
    2. 比较(关系)运算符
    3. 赋值运算符
    4. 逻辑运算符
    5. 位运算符
    6. 成员运算符
    7. 身份运算符
    8. 三目运算符

    算术元运算符

    以下假设变量: a=10,b=20:

    image.png

    python中,有三种除法,分别是

    10/3    3.333333333      
    

    1.计算结果是浮点数,即使两个整数恰好整数,结果也是浮点数

    9/3     3.0
    

    2.只取整数部分,余数被抛弃

    10//3   3
    

    3.余数运算,可以得到两个整数相除的余数

    10%3     1
    

    如果想同时得到商和余数,可以用这个方法

    divmod(10,3)    (3,1)
    

    因为浮点数精度的问题,Python还存在一些计算方面的小问题

    0.1+0.1+0.1-0.3
    5.551115123125783e-17
    

    要解决这个问题,可以导入decimal模块

    from decimal import Decimal
    Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
    Decimal('0.0')
    

    比较运算符

    image.png

    1.下面三个选项哪个为True?

    'abc' < 'xyz'   
    # 为什么字符串可以进行大小比较,这是因为电脑存储字符时,是以ASCII码值存储的
    也就是A是65,z是90.你输入的字符也是一个对应的数字
    
    (3,2) < ('a','b')
    

    2.请分别说出下面各项的值:

    True == 1
    False == 0
    3>2>1
    3>2>2
    (3>2)>1
    (3>2)>2
    

    对于连续比较,Python是按这种机制解释的:

    3>2>1 等于 (3>2) and (2>1) ,相当于两个比较,然后用与&再结合起来。

    赋值运算符

    image.png

    注意对于 a /= b 之类的操作,等同于a = a / b, 而不是 a = b / a,方向一定不要搞反了。

    a = 1
    a++
    print(a)  
    

    在python中是没有++的这种写法

    位运算符

    按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13,二进制格式如下:

    a = 0011 1100
    b = 0000 1101
    -----------------
    a&b = 0000 1100
    a|b = 0011 1101
    a^b = 0011 0001
    ~a  = 1100 0011
    
    image.png

    逻辑运算符

    Python语言支持逻辑运算符,但是没有其它语言中的&&||语法,取而代之的是更加人性化的英文单词and or not(全部都是小写字母)。以下假设变量 a 为 10, b为 20:

    image.png
    x = False
    y = True 
    
    x and y     
    False
    
    a = 10
    b = 20
    a and b 
    20
    

    成员运算符

    in 与 not in是Python独有的运算符(全部都是小写字母),用于判断对象是否某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类型的True或者False。

    image.png
    list1 = [1, 2, 3, 4, 5]
    a = 1
    
    for i in list1:
        if i == a:
            print("a在list1中")
        else:
            print('a不在list1中')
    
    flag = False
    for i in list1:
        if i == a:
            flag = True
            break
    if flag:
        print("a是list1的元素之一")
    else:
        print("a不是list1的元素")
        
        
    如果用in运算符来做的话,就不用这么麻烦了
    list1 = [1, 2, 3, 4, 5]
    a = 1
    if a in list1:
        print("a是list1的元素之一")
    else:
        print("a不是list1的元素")
    

    身份运算符

    这也是Python的特色语法(全部都是小写字母)。

    image.png

    注意is与比较运算符“==”的区别,两者有根本上的区别,切记不可混用:

    is用于判断两个变量的引用是否为同一个对象,而==用于判断变量引用的对象的值是否相等!

    a = [1,2]
    b = a
    b is a
    Ture
    b == a
    Ture
    b = a[:]
    b is a
    False
    b == a
    Ture
    
    a = 2
    b = 2.0
    b is a 
    a == b
    
    

    三目运算符

    python中的三目运算符不像其他语言一般的表示方法:判定条件?为真时的结果:为假时的结果。

    在python中的格式为:为真时的结果 if 判定条件 else 为假时的结果,例如:

    a = 1
    b = 2
    h = ""
    h = a-b if a>b else a+b
    

    如果a>b执行a-b,如果a<b执行a+b

    运算符优先级

    下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)

    image.png

    相关文章

      网友评论

          本文标题:9-运算符

          本文链接:https://www.haomeiwen.com/subject/atbnvqtx.html