基本操作符
加减乘除就不说了,浅谈一些值得注意的地方
首先可以看到a+=1(a=a+1)这些基本的简写,这些c语言支持的python一样支持,但是除法就不一样了,d/=8 按照c语言的思路,10/8是整数之间的除法,结果也应该是整数(地板(float)除法),但是python更人性化,可以直接得出小数结果。如果偏要用地板除法,那就用//来表示,例如:
但是和C语言不同的是,浮点型除以整形或者整形除以浮点型也会得到最接近商的整数
**是幂运算符,直接看图
3的2次幂等于9
2的10次幂等于1024
运算法则:先乘除,后加减
特殊:幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低
可以看到第一个是先算幂运算符,第二个先结合负号,印证了 幂运算符,比左侧运算符优先级高,比右侧运算符优先级低 这句话
逻辑操作符
And和or前面课程已经介绍过了,not是取反,(0和非零分别代表False和True)
下面两个式子是等价的
3<4<5在python中会被解释为(3<4)and(4<5)
总结(注意:逻辑运算符的优先级not>and>or)
请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
如果你的回答是 0,那么恭喜你你中招了!
答案是:4
not or and 的优先级是不同的:not > and > or
我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4
为啥是 4?
大家还记得“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4
(忘了就看前面的博客)
现在的 Python 可以计算很大很大的数据,但是......真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
print(2 ** 2 ** 32)
# 一般很多机子都会在一会儿之后:Memory Overflow,内存不够用。
# 设计到幂操作,结果都是惊人滴。