小甲魚第11課作業求教
steps = 7 #步數為7的倍數i = 1 #i到底是什麼呢?
FIND = False #為什麼要用ture or false??
while i < 100:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
各位朋友
可能到第11講都未正式學到while函數
不明白這個代碼的思路是什麼
為什麼i / step / find 要三個一起用上呢??
i = 0
steps = 7*(i+1)
steps = int(steps)
while steps >=0:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
print("階梯數是",step)
else:
i=i+1
然後我自已做了這個為什麼跑不起來 i = 0
steps = 7*(i+1) #实际上steps = 7
steps = int(steps) #实际上steps = 7
#上面这些语句在循环体之外,执行一次就不会再执行了
#下面是循环内的语句,如果条件成立就会一直执行,steps = 7 >= 0: 是成立的,但是循环内没有改变 steps值的语句,所以steps的值一直为7。
while steps >=0:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
print("階梯數是",step)
else:
i=i+1 #你改变 i 的值并不会返回去执行 steps = 7*(i+1) ,这个语句在循环外,执行一次就结束了 網絡奇人怪小四 发表于 2022-12-12 12:15
然後我自已做了這個為什麼跑不起來
1. 第二行steps = 7*(i+1),这一句将会执行 steps = 7*(0+1) = 7,此时 steps 的值已经是7,不需要执行steps = int(steps)
2. 此时 steps 是 7,如果你想让 steps 一直增加,则 while 的条件 steps >= 0 将会一直被满足,而 while 循环中又没有 break 语句,所以这个循环永远不会结束,需要在 print 那一行的后面加上一句 break
3. 尽管 while 循环中有 i=i+1 这一条语句,但是 steps 并没有被重新赋值,所以 steps 的值将一直是 7,因此需要在 i=i+1 后面加上一行 steps =7*(i+1)
最终结果:i = 0
steps = 7*(i+1)
while True:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
print("階梯數是",step)
break
else:
i=i+1
steps = 7*(i+1)
如果问题已被解决,请楼主不要忘记设置最佳答案,比如4楼的,他的回答就很好,成功抢在我前面 steps = 7 #步數為7的倍數
i = 1 #你可以这么理解i是一个玻璃容器,只不过贴了个标签名叫i,立面放了数字1进去
FIND = False #find是标记,判断是否找到某个事物的标记
while i < 100:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!') 编程追风梦 发表于 2022-12-12 19:53
如果问题已被解决,请楼主不要忘记设置最佳答案,比如4楼的,他的回答就很好,成功抢在我前面
很清楚, 跑起來了,謝謝 tommyyu 发表于 2022-12-12 15:42
1. 第二行steps = 7*(i+1),这一句将会执行 steps = 7*(0+1) = 7,此时 steps 的值已经是7,不需要执行 ...
很清楚, 跑起來了,謝謝
页:
[1]