Python作业第15讲的问题
就是第15讲课后作业的最后一题 那个角谷猜想甲鱼老师写的代码有点不懂 为什么是for i in range(1000)
n = int(input("请输入一个自然数:"))
for i in range(1000):
if n % 2 == 0:
print(n, "/2 = ", n // 2, sep='')
n = n // 2
else:
print(n, "*3+1 = ", n * 3 + 1, sep='')
n = n * 3 + 1
if n == 1:
break
难道是为了防止死循环?{:10_243:}
感谢解答哈
这代码里的那个是不小心写上去的 你想搞 for i in range(1000000000) 也是没有任何问题的,前提是你能等程序运行完
这个只是为了验证随便一个数,循环处理后会 = 1
只是随便举了一个例子而已
尝试 1 - 1000 里面的所有数,看看是不是能证实角谷猜想 for i in range(1000):
这个for循环i没有特别的用途,只是限制下执行次数,最终循环终止的标准还是要看:
if n == 1:
break
比如当你输入为123456时:
你把1000改成100,发现打印的结果是一样,说明测试到结果为1时,i<100,跳出
也可以这样检验:
if n == 1:
print(i)#加上这一行,打印输入为123456时的终止i得值,为60
break
页:
[1]