帅飞 发表于 2020-5-28 15:37:38

Python第6讲常用操作符最后一题:长阶梯问题咨询

x = 7
i = 1

while i <= 100:
    if(x%2 == 1) and (x%3 == 2) and (x%5 ==4) :
       print("阶梯数是", x)
    else:
      x = 7 * (i + 1)
    i += 1
我写的代码是这样的,结果输出好多(如下),不知道哪里有问题
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119
阶梯数是 119

qiuyouzhi 发表于 2020-5-28 15:38:32

加个break就好:
x = 7
i = 1

while i <= 100:
    if(x%2 == 1) and (x%3 == 2) and (x%5 ==4) :
       print("阶梯数是", x)
       break
    else:
      x = 7 * (i + 1)
    i += 1

heidern0612 发表于 2020-5-28 15:44:03

等于if的话,就进if里了,你if里面没限制while条件,所以一直循环了。

两种解决方法,一种是直接break,一种是满足while条件(while条件为假)。

zwhe 发表于 2020-6-2 10:48:04

{:9_235:}
页: [1]
查看完整版本: Python第6讲常用操作符最后一题:长阶梯问题咨询