为了账号安全,请及时绑定邮箱和手机立即绑定

Python3 运算符

标签:
Python

https://img1.sycdn.imooc.com//5dd7c9e5000119b719201200.jpg

1. Python语言支持的运算符

   (1)算术运算符

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

   (3)赋值运算符

   (4)逻辑运算符

   (5)位运算符

   (6)成员运算符

   (7)身份运算符

   

2. 算术运算符

   (1) +  (加):两个对象相加

   (2) -  (减):两个数相减,得到一个负数或者正数

   (3) *  (乘):两个数相乘或者是返回一个被重复若干次的字符串

   (4) /  (除):两数相除 

   (5) %  (取模):两数相除,返回除法的余数

   (6) ** (幂):返回x的y次幂

   (7) // (取整除):向下取接近除数的整数 


3. 比较(关系)运算符:返回True或False

   (1) == (等于) :比较两个对象是否相等

   (2) != (不等于):比较两个对象是否不相等

   (3) > (大于): 返回x是否大于y

   (4) < (小于): 返回x是否小于y

   (5) >= (大于等于): 返回x是否大于等于y

   (6) <= (小于等于): 返回x是否小于等于y

   注意:所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。


4. 赋值运算符

   (1) =   (简单的赋值运算符) :c = a + b

   (2) +=  (加法赋值运算符) : a += b 等价于 a = a + b

   (3) -=  (减法赋值运算符) : a -= b 等价于 a = a - b

   (4) *=  (乘法赋值运算符) : a *= b 等价于 a = a * b

   (5) /=  (除法赋值运算符) : a /= b 等价于 a = a / b

   (6) %=  (取模赋值运算符) : a %= b 等价于 a = a % b

   (7) **= (幂赋值运算符) : a **= b 等价于 a = a ** b

   (8) //= (取整除赋值运算符) : a //= b 等价于 a = a // b


5. 逻辑运算符

   变量a为10,变量b为20

   (1) and (布尔与) : 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b)返回20。

   (2) or (布尔或):如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b)返回10。

   (3) not (布尔非):如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b)返回False


6. 位运算符

   (1) &  (按位与运算符):参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(11为1,其余为0)

   (2) |  (按位或运算符):参与运算的两个值,如果两个相应位其中一个为1,则该位的结果为1,否则为0 (有1为1,00为0)

   (3) ^  (按位异或运算符):参与运算的两个值,如果两个相应位一个为1,一个为0,则该位的结果为1,否则为0(异为1,同为0)

   (4) ~  (按位取反运算符):对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (1变0, 0变1)

   (5) << (左移运算符):运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

   (6) >> (右移运算符):运算数的各二进位全部右移若干位,由">>"右边的数指定移动的位数。


7. 成员运算符

   (1) in : (x in y)判断x是否在序列y中,如果x在序列y中返回True,不在返回False。

   (2) not in: (x not in y)判断x不在序列y中,如果x不在序列y中返回True,在序列y中返回False。


8. 身份运算符

   (1) is : is是判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回True,否则返回False。

   (2) is not : is not是判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则结果返回True,否则返回False。


9. 运算符的优先级(由高到低) 

    运算符          描述

(1) **              指数 (最高优先级)

(2) ~ + -          按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

(3) * / % //      乘,除,取模和取整除

(4) + -              加法减法

(5) >> << 右移,左移运算符

(6) & 位 'AND'

(7) ^ | 位运算符

(8) <= < > >= 比较运算符

(9) == !=      等于运算符

(10) = %= /= //= -= += *= **= 赋值运算符

(11) is is not      身份运算符

(12) in not in      成员运算符

(13) not and or      逻辑运算符


10. is 与 == 区别:

    is 用于判断两个变量引用对象是否为同一个, 

    == 用于判断引用变量的值是否相等。

示例代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author : liuhefei
# Time : 2019/11/4
# desc:  Python运算符

if __name__ == "__main__":

    a = 33
    b = 24

    # 算术运算符
    c1 = a + b   # 加法
    c2 = a - b   # 减法
    c3 = a * b   # 乘法
    c4 = a / b   # 除法
    c5 = a % b   # 取模
    c6 = a ** 2  # 幂
    c7 = a // b  # 取整除
    print("加法c1 = ", c1)
    print("减法c2 = ", c2)
    print("乘法c3 = ", c3)
    print("除法c4 = ", c4)
    print("取模c5 = ", c5)
    print("幂c6 = ", c6)
    print("取整除c7 = ", c7)
    print("\n")

    #比较运算符
    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")
    # 修改变量a,b的值
    a = 14
    b = 8
    if (a <= b):
        print("5 - a 小于等于 b")
    else:
        print("5 - a 大于  b")

    if (b >= a):
        print("6 - b 大于等于 a")
    else:
        print("6 - b 小于 a")
    print("\n")

    # 赋值运算符
    a = 17
    b = 25
    c = 0

    c = a + b
    print("1 - c 的值为:", c)

    c += a
    print("2 - c 的值为:", c)

    c *= a
    print("3 - c 的值为:", c)

    c /= a
    print("4 - c 的值为:", c)

    c = 2
    c %= a
    print("5 - c 的值为:", c)

    c **= a
    print("6 - c 的值为:", c)

    c //= a
    print("7 - c 的值为:", c)
    print("\n")

    # 位运算符
    x1 = 77    # 100 1101
    x2 = 29    # 1 1101
    y1 = x1 & x2  # 0000 1101
    y2 = x1 | x2  # 0101 1101
    y3 = x1 ^ x2  # 0101 0000
    y4 = ~x1      # -0b1001110
    y5 = x1 << 2  # 0b100110100
    y6 = x2 >> 3  # 0000 0011
    print("按位与运算(&)y1 = ", y1)
    print("按位或运算(|)y2 = ", y2)
    print("按位异或运算(^)y3 = ", y3)
    print("按位取反运算(~)y4 = ", y4)
    print("左移运算(<<)y1 = ", y5)
    print("右移运算(>>)y1 = ", y6)
    print("\n")

    # 逻辑运算
    n = 13
    m = 4
    if n and m:
        print("1 - 变量n和m都为true")
    else:
        print("1 - 变量n和m有一个为False")

    if n or m:
        print("2 - 变量n和m都为True,或其中一个为True")
    else:
        print("2 - 变量n和m都为False")

    if not n:
        print("3 - 变量n为False")
    else:
        print("3 - 变量n为True")

    if not (n and m):
        print("4 - 变量n和m都为False,或其中一个为False")
    else:
        print("4 - 变量n和m都为True")
    print("\n")

    # 成员运算符
    a1 = 12
    b1 = 3
    list = [1, 2, 3, 4, 5]
    if a1 in list:
        print("1 - 变量a1 在给定的列表list中")
    else:
        print("1 - 变量a1 不在给定的列表list中")

    if b1 not in list:
        print("2 - 变量b1 不在给定的列表list中")
    else:
        print("2 - 变量b1 在给定的列表list中")
    print("\n")

    # 身份运算符
    s1 = 100
    s2 = 'a'
    if s1 is s2:
        print("1 - s1和s2引用自一个对象")
    else:
        print("1 - s1和s2来自不同的对象")

    if s1 is not s2:
        print("2 - s1和s2来自不同的对象")
    else:
        print("2 - s1和s2引用自同一个对象")

来源于:https://mp.weixin.qq.com/s/P3jyQB6jMscbyLsVBOvDyA

为你推荐几门优秀课程:

Python Flask高级编程之RESTFul API前后端分离精讲

Python高级核心技术97讲

Python3实用编程技巧进阶

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消