一. 算数运算符
"""在计算机中,因为有存储上限,所以所有的浮点数运算,都是一种近似值的运算,得到结果都是近似值""" """因为计算中CPU采用的是二进制,所以实际上数值在内部运算过程中,都会被转换成二进制,才进行运算"""
"""浮点数运算过程中近似值的计算,是不精确的。也叫丢失精度"""
# ret = 7.1+0.8 # print(ret) # 7.8999999999999995 # # # 解决上面的隐患,所以一般要保留精度 # print("%.2f" % ret) # 7.90
二. 赋值运算符
先计算等号=右边的表达式,再赋值给左边变量
# -= # var1 -= var2 '''var1 = var1 - var2''' # print(var1) # *= # var1 *= var2 '''var1 = var1 * var2''' # print(var1)
三. 比较运算符
比较运算符:特殊情况,字符串的比较,实际是编码位置的比较
计算机最终运行的是二进制,所以计算机中本身没有任何中文或字母,由于文件中内容录入有先后,所以有数值位置【编码位置】,因此,字符串的比较成了编码位置的比较
# > var1 = 15 var2 = 18 res = var1 > var2 print(res) # < res = var1 < var2 print(res) # >= 只要满足一个条件即为真 res = var1 >= 15 print(res)
四. 成员运算符
仅针对与容器类型,从这点上来说,str也可以算是一种容器类型
listvar = ["xiaoming","xiaobai","xiaohei"] res = "xiaobai" in listvar print(res) tuplevar = "xiaoA","xiaoW","xiaoK","xiaoF" res = "xiaoA" not in tuplevar print(res)
五. 身份运算符
仅针对变量的内存地址。
var1 = 56 var2 = 56 res = var1 == var2 # (判断两个值是否相等) res = var1 is var2 # (判断两个值得地址是否相等)
六. 逻辑运算符
# (1)and 逻辑与 '''全真则真,一假则假''' res = True and True res = False and True res = False and False res = True and False print(res) # (2)or 逻辑或 '''全假则假,一真则真''' res = True or True res = True or False res = False or True res = False or False print(res) # (3)not 逻辑非 相当于取反 res = not True res = not False print(res)
数据转换成bool,除了bool函数,还可以用not
a=1
ret=bool(a)
ret=not not a
注意:与其他语言一样,python的逻辑运算符也会有短路现象的出现。
短路:左边的运算结果已经可以让python清晰整个逻辑运算的最终结果了
False amd print("hello"). #逻辑短路现象,输出为空 print(0 and 1) #0 print(0 or 1) #1
七. 位运算符
位(bit):计算机中,采用二进制来进行数据存储的,那么1个二进制数字就是1位(1bit),1byte = 8位。一个字节可以保存的有符号的数字:-127~127
反码:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
补码:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
# 按位异或 ^ "如果两者不相同,返回真,两者相同返回假
res = var1 ^ var2 print(res) ''' 000000010011 000000001111 000000011100 ''' # << 相当于 5 乘以 2的2次幂 res = 5 << 2 res = 4 << 3 print(res) # 20 """ 000000101 000010100 """ # ~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1) ~9 结果:-10 原码:00001001 反码:11110110 补码:10001001 修正:10001010 1是负,加1修正 转换:-0008020 -> 10 ~-9 结果:8 原码:10001001 反码:01110110 补码:00001001 修正:00001000 0是正,减1修正 转换:+0008000 -> 8
八. 运算符优先级问题
在表达式里面,给优先想要运算的表达式加上小括号提升它的优先执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现