上QQ阅读APP看书,第一时间看更新
3.10.2 优先级问题
当一个表达式存在着多个运算符的时候,就可能会发生以下对话。
加法运算符说:“我先到的,我先计算!”
乘法运算符说:“哥我干一次够你翻几个圈了,哥先来!”
减法运算符说:“你糊涂了,我现在被当成负号使用,没有我,你们再努力,结果也是得到相反的数!”
除法运算符这时候默默地说:“抢吧抢吧,老娘我除以零,大不了大家同归于尽!”
呃!为了防止以上矛盾的出现,我们规定了运算符的优先级,当多个运算符同时出现在一个表达式的时候,严格按照优先级规定的级别来进行运算。
先乘除,后加减,如有括号先运行括号里边的。没错,从小学我们就学到了运算符优先级的精髓,在编程中也是这么继承下来的。例如:
-3 * 2 + 5 / - 2 - 4
相当于
(-3) * 2 + 5 / (-2) - 4
其实这个多做练习自然就记住了,不用刻意去背。当然在适当的地方加上括号强调一下优先级小甲鱼觉得会是更好的方案。
Python还有一个特殊的乘法,就是双星号(**),也称为幂运算操作符。例如3 ** 2,双星号左侧的3称为底数,右侧的2称为指数,把这样的算式叫作3的2次幂,结果就是3 * 3==9。
在使用Python进行幂运算的时候,需要注意的一点是优先级问题,因为幂运算操作符和一元操作符(1)的优先级关系比较特别:幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低: