先括号,再乘除,后加减,这是最基本的优先级规则。上一篇提到多了幂,取模和取整,优先级仍然是高于加减,变成幂乘除取模取整后加减:**,* / % //,+-。写在前面的是等级最高的,注意中间的逗号隔开,表示不同的级别,同一级别的运算符优先级规则是谁先则先算谁。
下面来验证规则
"""
算术运算符优先级
"""#验证**最高等级计算t=37%10//5*3/2*10**2#输出150.0print(t)#参考上面验证同级别运算符的优先级t2=37*10/5//3%2*10**2#输出0.0: 37*10=370/5=74.0//3=34.0%2=0.0*100=0.0print(t2)#把加减法加进来验证t3=10*2+12/5-20+31//2-23%4#第一次计算后:20 + 2.4-20 + 15-3=14.4print(t3)
但运行之后,t3的结果还是有点意外的。
单独拿出来计算12/5是=2.4的
这个问题也是第一次遇到,明明是整除,为什么会有这么多小数位呢?这个问题暂时记录吧!想到了原因再说吧!
眼睛好使的都会发现一个问题,就是结果都带小数。
主要原因Python的版本进化,除法也有了更改。进化为精确除法:无论操作数是整数还是浮点数,得到的商总是真实结果,总是得到浮点数。
基于这点,4/2=2.0就好解释了。所以,结果都是带小数的!但取模、取整就不会带有小数。大家自行验证。
那如何去除结果中的小数呢?这里先介绍两种方法:
1,向下取整int()
2,四舍五入round()
还有其它方法,收录在math模块中。将在标准库学习中再详细说明。
下篇预告:比较运算符