空白的天 发表于 2020-12-4 11:55:55

python while循环问题

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):   #在这个while循环中 不应该是直到 i =101 的时候才终止循环吗,为什么在输出了 119 后就终止了程序
      flag = 1
    else:
      x = 7 * (i+1)
    i += 1

if flag == 1:
    print(x)
else:
    print('在程序设定寻找范围内找不到答案')


昨非 发表于 2020-12-4 11:57:12

因为后面没了啊

昨非 发表于 2020-12-4 12:02:06

而且我记得题目要求是找到符合条件的最小值吧
你就是把条件从100该成1000000,该输出119还是119

空白的天 发表于 2020-12-4 12:07:39

昨非 发表于 2020-12-4 12:02
而且我记得题目要求是找到符合条件的最小值吧
你就是把条件从100该成1000000,该输出119还是119

while 循环不是条件false的时候才会停止吗 那循环到 i=47 的时候不是应该还会输出一个329的数吗

昨非 发表于 2020-12-4 12:17:51

本帖最后由 昨非 于 2020-12-4 12:21 编辑

空白的天 发表于 2020-12-4 12:07
while 循环不是条件false的时候才会停止吗 那循环到 i=47 的时候不是应该还会输出一个329的数吗

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)
      print(i)      #加上这一行你就明白了
    i += 1

if flag == 1:
    print(x)
else:
    print('在程序设定寻找范围内找不到答案')


i=17以后,x=119,之后i再增加,循环里始终执行if,也就是说x的值不变了
反映在代码里,就是添加的那一行,只打印到16,17以后不打印,也就是说在这之后x不变

空白的天 发表于 2020-12-4 20:32:47

昨非 发表于 2020-12-4 12:17
i=17以后,x=119,之后i再增加,循环里始终执行if,也就是说x的值不变了
反映在代码里,就是添 ...

好的谢谢
页: [1]
查看完整版本: python while循环问题