一、测试题
0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
1. a < b < c 事实上是等于?
2. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
3. 如何简单判断一个数是奇数还是偶数?
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
5. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
二、动动手
0. 请写一个程序打印出 0~100 所有的奇数。
1. 我们说过现在的 Python 可以计算很大很大的数据,但是......真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
2. 爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
题目:请编程求解该阶梯至少有多少阶?
3.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
我的答案
一、
0. 输出:>>>1.0
1. a<b and b<c
2. >>>0.25(5的-2次幂)
3. 可以用这个数取余(%),余数为零即为偶数,否则为奇数
4. 当not和and及or在一起运算时,优先级为是not>and>or。not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
4
由因为短路逻辑的原理,使得3 and 4 == 4,而 3 or 4 == 3(4被短路)。所以原式化为:0 || 0 || 4 || 6 || 9 = 4
5. 我在网上查到的是,还可以用内建函数【divmod】
>>> divmod(9,2)
(4, 1)
小甲鱼在闰年习题中的折中方法是:“if year/400 == int(year/400)”这样的方式来“委曲求全”。
二、
0. 程序如下:
initial = 0
print('0~100的奇数有以下这些:',end= ' ')
while initial <= 100:
if (initial%2) != 0:
odd = initial
print(odd,end=' ')
initial += 1
# 结果:0~100的奇数有以下这些: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 # 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
1. 利用幂运算就可以达到目的,这里不尝试了。。。
2. 程序如下:
x = 0
while (x%7)!=0 or (x%6)!=5 or (x%5)!=4 or (x%3)!=2 or (x%2)!=1:
x += 1
print('一共有'+str(x)+'个台阶')
# 输出:>>>一共有119个台阶
3. 课堂重点:
- 算术操作符:
加+、减-、乘*、除/、余%、幂**
小技巧:a += 5 <-->a=a+5 (同理可用于减法、乘法)
a=b=c=d=5也是合法的
python2.x采用的除法是地板除法,python3.x采用了精确除法,如果要采用地板除法,则可用//,如3.0//2=1.0 - 幂运算操作符比其左边(一元运算符)优先级高,比其右边(一元运算符)优先级高
- 必要场合多用括号增强可读性。
- 逻辑操作符:not>and>or
- 优先级:
幂>正负号(一元)>算数>比较>逻辑
参考答案:https://www.jianshu.com/p/5c4ae204e54c
作者:无罪的坏人
链接:https://www.jianshu.com/p/e7226241eed0
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。