Jtrump156 发表于 2023-9-9 23:04:25

while的一个小问题

x = 7
i = 1
flag = 0
while i <= 200:
    if (x % 2 == 1) and (x % 3 == 2 ) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
      flag = 1
      i += 1
    else:
      x = (i + 1) * 7
      i += 1
if flag == 1:
    print('该阶梯的台阶是:',x)
else:
    print('该题目无解')

为啥我把“i”换成“x”就print不出来了
x = 7
i = 1
flag = 0
while x <= 200:
    if (x % 2 == 1) and (x % 3 == 2 ) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
      flag = 1
      i += 1
    else:
      x = (i + 1) * 7
      i += 1
if flag == 1:
    print('该阶梯的台阶是:',x)
else:
    print('该题目无解')

isdkz 发表于 2023-9-9 23:04:35

问题出在你将“i”换成了“x”,导致变量名混淆。在while循环中,程序需要用到变量“i”来控制循环次数,而你将其改成了“x”,导致循环次数无法控制,从而导致程序出错。因此,你需要将“i”改回来,即将代码修改为:

x = 7
i = 1
flag = 0
while i <= 200:
    if (x % 2 == 1) and (x % 3 == 2 ) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
      flag = 1
      i += 1
    else:
      x = (i + 1) * 7
      i += 1
if flag == 1:
    print('该阶梯的台阶是:',x)
else:
    print('该题目无解')

歌者文明清理员 发表于 2023-9-9 23:29:20

你发的两段代码不是一样吗

Jtrump156 发表于 2023-9-9 23:37:07

isdkz 发表于 2023-9-9 23:04
问题出在你将“i”换成了“x”,导致变量名混淆。在while循环中,程序需要用到变量“i”来控制循环次数,而 ...

明白了,if成立的那一方x一直没变,死循环了{:7_126:}

Jtrump156 发表于 2023-9-9 23:38:13

歌者文明清理员 发表于 2023-9-9 23:29
你发的两段代码不是一样吗

while那里不一样的
页: [1]
查看完整版本: while的一个小问题