2017-03-17 79 views
-4

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

我上传它的图片。

我的问题在于,当我运行它而不是仅打印正值时,它还会打印出10000行空白行,我希望不是这样。 enter image description here

+3

不要发布你的代码的图片。相反,请复制并粘贴代码,并确保格式化,以便其他人可以复制并运行代码。阅读这里的指导http://stackoverflow.com/help/how-to-ask。 – lufte

+0

您的其他人正在打印'z',但是当您返回'z'时,您也正在打印它。另外我不确定我是否理解该计划的目标。如果你想找到一个范围内的所有正整数,你可以从一端开始,递减/递增,直到到达另一端。 – PeskyToaster

回答

0
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]

+0

谢谢你,感谢你的帮助。我刚刚开始编程,所以我可能看起来有点浮肿,但我希望随着时间的推移,我会变得更好。 –