Python之常⽤操作符+习题复习
##算术操作符
(加减乘除前⾯四个和以前的编程语⾔都⼀样,⼩技巧也⼀样a = a+3可以写成a +=3,等等⼜如a = a*3,可以写成a *= 3,python中10/8是等于1.25,返回的是⼀个精确的值,⽽不是1,要想得到1就⽤双//,如10//8=1,浮点类型,就得浮点类型,%就是取余
数,11%2商5余1,所以结果是1,最后两个**就是幂运算,⽐如3**2 表⽰的是3的2次⽅就是9)
##优先级问题
(总的说就是先乘除后加减,但是单⽬运算符优先级会⽐较⾼,⽐如-当做负号使⽤时,当然,有括号就先计算括号的值。需要注意的是幂运算操作符⽐其左侧的⼀元操作符即单⽬运算符优先级⾼,⽐其右侧的⼀元操作符优先级低,如下例⼦,结果是-9,说明先执⾏了3的2次幂,在取负数。⼀元运算符在右侧就先计算⼀元运算符,变成-2,在执⾏3的-2次幂)
##⽐较操作符
(⽐较操作符就是根据表达式的真假来返回布尔类型的值)
##逻辑操作符
(and操作符两边都为真才为真,or操作符只要其中⼀个为真就为真了,not是⼀元操作符,只有⼀个操
作数,就是把这个操作数取他相反的布尔类型的值,然后在python中3<4<5是可以的,返回值是True,他被解释为(3<4) and (4<5),但是在其他语⾔是⾏不通的)
##⼜是优先级问题
##温故知新之习题
0. Python 的 floor 除法现在使⽤ “ // ” 实现,那 3.0 // 2.0 您⽬测会显⽰什么内容呢?
答:(如果回答是 1.5 那么很遗憾, 您受到 C 语⾔的影响⽐较⼤, Python 这⾥会义⽆反顾地执⾏ floor 除法原则,答案是: 1.0 )
1. a < b < c 事实上是等于?
答:( (a < b) and (b < c) )
2. 不使⽤ IDLE,你可以轻松说出 5 ** -2 的值吗?
答:(0.04 ,也就是 1/25 ,幂运算操作符⽐其左侧的⼀元操作符优先级⾼,⽐其右侧的⼀元操作符优先级低。 )
3. 如何简单判断⼀个数是奇数还是偶数?
答:(使⽤求余可以简单得到答案:能被 2 整除为偶数,所以 x % 2 == 0 ,否则为奇数。 )
4. 请⽤最快速度说出答案: 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?
编程先学c语言还是python⼤家还记得第四讲作业提到的“短路逻辑”吗? 3 and 4 == 4 ,⽽ 3 or 4 ==
3。所以答案是: 4
温馨提⽰:为了更好的表达你的程序, ⼩甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你⼀样都将优先级烂透于⼼的。 )
5. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得⽤什么⽅法可以“委曲求全”代替“%”的功能呢?
答:(因为上节课我们还没有教⼤家“求余”的操作, 所以⼩甲鱼使⽤了“ if year/400 == int(year/400) ”这样的⽅式来“委曲求全”。)
##动动⼿
0. 请写⼀个程序打印出 0~100 所有的奇数。
i =0
while i <=100:
if i %2!=0:
print(i,end =" ")
i = i+1
else:
i = i +1
1. 我们说过现在的 Python 可以计算很⼤很⼤的数据,但是…真正的⼤数据计算可是要靠刚刚的硬件滴,不妨写⼀个⼩代码,让你的计算机为之崩溃?
答:print(2 ** 2 ** 32)
# ⼀般很多机⼦都会在⼀会⼉之后: Memory Overflow ,内存不够⽤。
# 设计到幂操作,结果都是惊⼈滴。
2. 爱因斯坦曾出过这样⼀道有趣的数学题:有⼀个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好⼀阶也不剩。(⼩甲鱼温馨提⽰:步⼦太⼤真的容易扯着蛋~~~)
题⽬:请编程求解该阶梯⾄少有多少阶?
x =7
i =1
flag =0
while i <=100:
if(x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
flag =1
else:
x =7*(i+1) #根据题意,x⼀定是7的整数倍,所以每次乘以7  i+=1
if flag ==1:
print("阶梯数是:",x)
else:
print("在程序限定的范围内不到答案!")

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。