本文链接:https://www.cnblogs.com/zyuanlbj/p/11910980.html
算术运算符
+ - * / % ** //
示例:
a=9 b=2 result = a * b print('乘法运算:',result) result = a / b print('除法运算:',result) b=3 result = a ** b # b=2 8*8=64 8*8*8 =512 a的b次幂 print('乘法运算:',result) b=2 result = a // b # 整除 9/2 =4.5 取整:4 print('除法运算:',result) result = a%b # 9%2= 1 print('取余数运算:',result)
赋值运算符
= -= += *= /=
- 赋值运算符左边必须是变量。
- 从右向左算。
- 没有赋值表达式。
- 所有赋值运算符优先级相同,赋值运算符优先级非常低,仅高于成员运算符和身份运算符、逻辑运算符。
- 注意在复合赋值中。
示例:
# 1. = name = 'admin' # 将'admin'的值赋给 变量name name1 = name print(id(name), name) print(id(name1), name1) name2 = name print(id(name2), name2) # id() 获取变量地址 print(name == name1) # name1 = 'admin1' print(id(name1), name1) print(id(name), name) name = 'admin2' print(id(name), name) name3 = name print(id(name3), name3) # 扩展后的赋值符号 += -= *= /= ... num = 8 num += 5 # num = num + 5 此时+ 数学加号 print(num) num -= 10 # num = num-10 print('num=', num) a = 'abc' a += 'ff' # 等价于: a = a +'ff' 此时'+'就是连接符 包含两个动作: 1. 连接 2.连接后的结果赋值 print(a) # a -= 'kk' # 不支持 # print('a=',a)
关系运算符
- >:大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False。
- >=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False。
- <:小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False。
- <=:小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False。
- ==:等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False。
- !=:不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False。
示例:
n1 = int(input('请输入第一个数:')) n2 = int(input('请输入第二个数:')) # 判断n1 与 n2 result = n1 > n2 # 结果False True # 8 > 12 --->False print('n1>n2:',result) result = n1 == n2 print('n1==n2:',result) m1='hello' m2='hello' result = m1==m2 print('m1==m2:',result) username= input('输入用户名:') uname ='admin123' result = username==uname # result = username != uname # 如果两者不相等则会返回True,相等则返回False print('用户名的验证结果是:',result)
逻辑运算符
逻辑运算符用于操作 bool 类型的变量、常量或表达式,逻辑运算的返回值也是 bool 值。
- and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。
- or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False;
- not:非,只需要一个操作数,如果操作数为 True,则返回 False;如果操作数为 False,则返回 True。
示例:
# and or not # and 逻辑与 # or 逻辑或 # not 逻辑非 # 逻辑运算符的运算结果也是返回True False n1= 8 n2 =5 n3=3 result = n1>=(n2+n3) and n1>n2 n2=n2+n3 # n2--->8 result = n1>=n2 and n1==n3 # True and False ---->False n4=(n1+n3)-n2 # n4=3 result = n4<n1 and (n4+n3)>n2 # False # 判断是否存在用户 username = '' email ='63478364@qq.com' result = username=='admin123' or email =='63478364@qq.com' # False or True ---->True print('or ---->',result) a=2 b=5 c=7 result = (a+b)!=c or c>a print('or--222-->:',result) flag = False result = not flag # not就是取反 print('not ---->:',result)
位运算符
位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用。使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效。
反码:正码取反;补码:反码加1;最高位表示符号位。
- &:按位与。
- |:按位或。
- ^:按位异或。
- ~:按位取反。
- <<:左位移运算符(补0)。
- >>:右位移运算符(补符号位)。
示例:
a =3 print(bin(a)) # 0b 11 a=13 print(bin(a)) b = 0b10111 # 0b 二进制 二进制的表示: 0b1000101 print(int(b)) c=-8 # -0b1000 0000 1000 print(bin(c)) c= 0o6430 # 0o 开头的都是八进制 里面的数字不能超过8 print(int(c)) # 开头表示0x 0-9 a-f # 应用: FFFFFF 000000 FF0000 00FF00 d=0x9ab16 print(int(d))
三目运算符
Python 可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种if语句当成三目运算符。作为三目运算符的 if 语句的语法格式如下:
True_statements if expression else False_statements
三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回False_statements 的值。
# 格式:表达式 ? 真 : 假 result = (8>10)?'真':'假' print(result) # python的格式: 结果 if 表达式 else 结果 a=6 b=5 result = (a+b) if a<b else (b-a) ''' 判断表达式是True还是False 如果是True则 将if前面的内容进行运算,并将结果赋值成result 如果是False则将else后面的内容运算结果,并将结果赋值成result ''' print(result)
身份运算符
- is: 判断两个标识符是否引用自同一个实体【对象】,比较的是两个对象的id是否一样,如果相同为真,否则为假。
- is not:判断两个标识符是不是引用自不同的实体【对象】如果两个对象的id不同结果为真,否则为假。
- id()函数获取实体的id(地址)。
注意:is和==的区别
- is用于判断两个变量引用实体是否为同一个【id】
- ==用于判断两个变量的值是否相同,但id不一定相同
成员运算符
主要应用在序列中。
in:如果在指定的序列中找到指定的值,则返回True,否则返回False。
not in:如果在指定的序列中未找到指定的值,则返回True,否则返回False。
运算符优先级
运算符 | 描述 |
** | 指数(最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位与 |
^ | | 位异或,或 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |