本文链接: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。
运算符优先级
运算符 | 描述 |
** | 指数(最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位与 |
^ | | 位异或,或 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |