【问题标题】:Wrinting a program using loop only仅使用循环编写程序
【发布时间】:2017-03-17 17:27:49
【问题描述】:

我的任务是创建一个程序来查找定义范围内的所有正整数。目前我在学校,所以我仅限于使用循环和函数来使其工作(另请注意,我刚刚开始学习使用函数。

我已经上传了它的图片。

我的问题在于当我运行它而不是只打印正值时,它还会打印出 10 000 个空白行。我希望情况并非如此。 我认为这与第二个 else 语句有关。

【问题讨论】:

  • 不要张贴您的代码图片。相反,复制并粘贴代码并确保对其进行格式化,以便其他人可以复制并运行它。在此处阅读指南stackoverflow.com/help/how-to-ask
  • 你的 else 正在打印 'z' 但是当你返回 'z' 时,你也在打印它。此外,我不确定我是否理解该计划的目标。如果你想找到一个范围内的所有正整数,你可以从一端开始,然后递减/递增,直到你到达另一端。

标签: python python-3.x


【解决方案1】:
def getDivisors(number):
    divList = []
    for x in range(1,number):
        if number % x == 0:
            divList.append(x)
    return divList

def isPerfectNumber(divList,number):
    if sum(divList) == number:
        return True
    else:
        return False

for x in range(2,10001):
    divList = getDivisors(x)
    if isPerfectNumber(divList,x):
        print(x,divList)

看起来该代码有效。我还让它打印出分区列表,以便您自己检查验证数字。

这是我的输出:

6 [1, 2, 3]

28 [1, 2, 4, 7, 14]

496 [1, 2, 4, 8, 16, 31, 62, 124, 248]

8128 [1、2、4、8、16、32、64、127、254、508、1016、2032、4064]

【讨论】:

  • 谢谢,感谢您的帮助。我刚开始编程,所以我可能看起来有点笨拙,但我希望随着时间的推移我会变得更好。
猜你喜欢
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 2014-11-28
相关资源
最近更新 更多