python运算符
print(9/ 3) # "/" 返回的都是浮点数
print(10 // 3) # "//" 整除,返回的结果是3.333333333333333335 向下取整 3
print(-10 // 3) # "//" 整除,返回的结果是-3.333333333333333335 向下取整 -4
print(10% 3) # "%" 取余,返回的结果是1
print(-10% 3) # "%" 取余,返回的结果是2
1、print(5.4-3) # 输出结果 2.4000000000000004 注意:这并不是python里面的bug,因为计算机在做运算时,先要把十进制转化为二进制,得到结果还要转化为十进制,导致结果累计误差,要避免这种情况发生,可以引进 python中内置模块 decimal 模块,
import dicimal # 导入内置模块,不需要在进行pip 安装
from decimal import Decimal #导入内置模块,大写Decimal 是类,可以点击crtl+鼠标左键,查看帮助文档。
print(decimal("5.4”)-Decimal("3")) #输出结果2.4
2、divmod(x,y) # 方法返回 ( x//y,x%y)
3、比较运算符
print(True==1) #输出结果 True ==比较2个值是否相等,返回bool值。
print(False==0) #输出结果 True
print(2.0==2) # 输出结果 True 比较运算符,比较的是数值
print(“2”==2) # 输出结果 False 字符串不是数值,所以为False
print(“a,b,c”<“x,y,z”)# 输出结果 True 比较的是ASKII ,97 98 99<120,121,122,
字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同的情况下,就比第二个字符串,以此类推
print(“a”<1)#会提示报错,int与str类型 不能直接比较
TypeError: '<' not supported between instances of 'str' and 'int' 这是一个类型错误。
4、连续比较
print(3>2>1) # 输出结果为True 当进行连续比较的时候,3>2>1---> 3>2 或者 2>1 即
a>b and b>c 两者都为Ture才为Ture 否则为 False
print(3>2>2) # 输出结果为False Ture 和False 得到False
print((3>2)>2) # 输出结果为False ,括号里有优先级,得到Ture ,那么 Ture >2 比较 得到False
5、赋值运算符
print(a+=1 ) #可以看做 a = a + 1 在python中 不支持a++或者a--这种语法
6、逻辑运算符
短路机制:注意不是比大小
# print(False and Ture) 先进行判断,当判断and 前面的是False 跳出语句不在执行。则返回False,若判断and前面的是True,再判断and后面的是不是True,要是为True输出为True,负责为False------此语句输出False
# print(Ture or False) 先进行判断,要是and前面的是True,直接跳出语句,or后面的不再执行。要是or前面的是False,则执行or后面的,若为True 则输出为True,否则为False。-----------此语句输出True
a=True b=True c=False d=False ---------a and d Ture/ a and c False/ a or c True /
c or d False
print(10 and 20)# 输出20 非0的bool是为True
print(10 or 20) # 输出10