小甲鱼第六章课后题总结与反思

基础题:
0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
由于pyhon的浮点计算机制,会自动去掉小数点后的东西,这里需要注意

2. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
答:0.04

注意幂运算左低右高的原则
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

注意优先级!!!!not>and>or
注意短路逻辑!!!!!3and4=4 3or4=3 0or4=4
所以首先将and组合变为:0 or 0 or 4 or 6 or 9=4

编程题
0. 请写一个程序打印出 0~100 所有的奇数。

temp = input ('输入1-100一个数从而得知当中所有的奇数;')
number = int(temp)
i=1
if number % 2 == 0:
    number -= 1
while i != (number+2):
    print (i)
    i += 2
或者(网上答案)
i = 0
while i <= 100:
    if i % 2 !=0:
        print(i)
        i += 1
    else:
        i +=1

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)
    i += 1
#注意这里i += 1 与if else并列,而不是在else里面。原因是若在else里面,则当为正确答案的时候,i不会改变,于是一直while循环,从而不能继续后面的if操作。
if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')

总结:1.优先级,短路逻辑
2.注意逻辑。拿到一道题第一反应往往就是编程逻辑的开始。如爱因斯坦那道题,拿到的第一反应是以2为基础找答案,和答案以7找答案一样。注意编写开头的初始赋值为后面逻辑做铺垫
3.注意框架,i+=1放在不同地方表达的含义不同,注意与逻辑框图联系

发布了17 篇原创文章 · 获赞 1 · 访问量 367

猜你喜欢

转载自blog.csdn.net/cccccccaaaaaaaaa/article/details/105178795