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