基本循环/ Python

时间:2016-09-19 04:28:35

标签: python python-3.x

我应该编写一个程序,显示100到200之间的数字,每行10个,可以被5或6整除,但不能两者都可以。到目前为止这是我的代码。我知道这是一个基本问题所以你能告诉我我错过的基本代码而不是"快捷方式"脚步。任何帮助表示赞赏!

    def main():
      while (num >= 100) and (num <= 200):
      for (num % 5 == 0) or (num % 6 == 0)
        print (num)

    main()

2 个答案:

答案 0 :(得分:1)

我就是这样做的。如果您知道所需的范围,我建议在while循环中使用for循环。你不太可能进入无限循环。 n变量的原因是因为你说你每行需要10个数字。 n变量将跟踪您找到的正确数字的数量,以便您知道何时有10个结果并且可以使用自动包含换行符的普通打印语句。第二个print语句不会添加换行符。

n = 0
for i in range(100,201):
    if (i%5 == 0 or i%6 == 0) and not (i%5 == 0 and i%6 == 0):
        n += 1
        if n%10 == 0:
            print(i)
        else:            
            print(str(i) + ", ", end="")

答案 1 :(得分:0)

您应该在代码中使用init来初始化每个变量 当条件为假时,(条件)将中断。由于您的条件取决于num,但您的代码中的num永远不会更改,因此将发生无限循环。您需要在循环块的末尾添加num = num + 1。 如果不是这里的每个迭代器,它应该使用它。你用于问题的条件是错误的。

应该是这样的:

def main():
    num = 100
    while (num >= 100) and (num <= 200):
        if ((num % 5 == 0) or (num % 6 == 0)) and (num % 30 != 0):
            print (num)
        num = num + 1
main()