我应该编写一个程序,显示100到200之间的数字,每行10个,可以被5或6整除,但不能两者都可以。到目前为止这是我的代码。我知道这是一个基本问题所以你能告诉我我错过的基本代码而不是"快捷方式"脚步。任何帮助表示赞赏!
def main():
while (num >= 100) and (num <= 200):
for (num % 5 == 0) or (num % 6 == 0)
print (num)
main()
答案 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()