新手求助!第六讲,课后作业。
不太明白示例中为什么满足第一个if条件flag=1后,while循环中止了?2. 题目:请编程求解该阶梯至少有多少阶?
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) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!') 自己编写的代码和显示结果如下:
x = 7
i = 1
while i <= 100:
if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5):
print('这个数是:',x)
print('倍数为:',i)
i+=1
x=7*i
显示结果:
这个数是: 119
倍数为: 17
这个数是: 329
倍数为: 47
这个数是: 539
倍数为: 77 里面并没有终止呀,都是到最后统一进行判断是否找到答案的!
想终止可以加 break ,都一样的 67193114 发表于 2022-3-4 20:07
自己编写的代码和显示结果如下:
x = 7
i = 1
想只找到一个的话可以这样:
x = 7
i = 1
while i <= 100:
if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5):
print('这个数是:',x)
print('倍数为:',i)
break
i+=1
x=7*i 67193114 发表于 2022-3-4 20:07
自己编写的代码和显示结果如下:
x = 7
i = 1
想要只找到一个就终止的话可以这样:
x = 7
i = 1
while i <= 100:
if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5):
print('这个数是:',x)
print('倍数为:',i)
break
i+=1
x=7*i 本帖最后由 isdkz 于 2022-3-4 20:16 编辑
67193114 发表于 2022-3-4 20:07
自己编写的代码和显示结果如下:
x = 7
i = 1
实例里面的并没有终止,他只是因为满足一旦满足 if 条件后,
它就不会再进入 else 里面改变 x 的值,所以一直在 if 里面对 flag 赋值 1,
他那样子只能获取到 一个最小的满足条件的值,
你在示例代码中加个打印就知道循环并没有终止了。
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):
print('in if')
flag = 1
else:
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
print('in else')
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
你的代码就可以获取到多个满足条件的值。
自己想明白了,还是谢谢了!!! isdkz 发表于 2022-3-4 20:15
实例里面的并没有终止,他只是因为满足一旦满足 if 条件后,
它就不会再进入 else 里面改变 x 的值 ...
是的是的,正如您说的。自己也刚刚看明白!十分感谢!
python爱好者. 发表于 2022-3-4 20:08
里面并没有终止呀,都是到最后统一进行判断是否找到答案的!
想终止可以加 break ,都一样的
嗯嗯,是的!小白一枚,刚开始学。多谢!!! while并没有终止,只是满足了if语句以后,else就没有进去过了,所以x的值就没有变化了,但i的值一直在逐次加1到i是101的时候才跳出去 YSW9527 发表于 2022-3-4 22:25
while并没有终止,只是满足了if语句以后,else就没有进去过了,所以x的值就没有变化了,但i的值一直在逐次 ...
是的是的,多谢指教!
页:
[1]