第六课
测试题:
0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
答:会显示 1.0 。因为 “//” 是地板除法,会自动抹掉小数点后的数。
1. a < b < c 事实上是等于?
答:等于 a < b and b < c 。
2. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
答:表示 5 的 -2 次幂,结果是 1/25 ,即为 0.04 。
3. 如何简单判断一个数是奇数还是偶数?
答:如果这个数可以整除2则是偶数,否则为奇数。
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
答:首先逻辑优先级 not > and > or 。所以按照优先级把数据用小括号处理后有:(not 1) or (0 and 1) or (3 and 4) or (7 and 8 and 9),not 1 == 0(False假),0(False) and 1(True) == False,3 and 4 == Ture and Ture(0<3,0<4,大于零为真);由or逻辑可知只要有一为真则命题全为真(即 False or True == True ),并参考 “短路逻辑” 判断可快速得到命题答案为 4 。【整个命题其实是以or连接的逻辑命题,所以只要出现真条件则整个命题就为真,而且因为第一个出现的真条件是 3 and 4 ,在and的条件中要两个同为真则为真,表述出来为最后一个真条件的结果,即为 4 (如果是 3 or 4 则表述为 3 ); “短路逻辑” 即一旦第一个符合的条件出现之后,后边的条件则不再判断和考虑,所以最终答案为 4 。】
动动手:
0. 请写一个程序打印出 0~100 所有的奇数。
print('100内的奇数有:')
number = 100
while number > 0:
if number%2 != 0:
print(number)
number -= 1
2. 爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
题目:请编程求解该阶梯至少有多少阶?
step = 7
i = 1
panduan = 0
while i <= 100:
if (step%2 == 1) and (step%3 == 2) and (step%5 == 4) and (step%6 == 5):
panduan = 1
else:
step = 7 * (i+1)
i += 1
if panduan == 1:
print('阶梯数是:',step)
else:
print('程序限定范围以内无法找到符合答案。')