Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从一系列整数中查找完美整数列表_Python_List_Loops_Printing_Range - Fatal编程技术网

Python 从一系列整数中查找完美整数列表

Python 从一系列整数中查找完美整数列表,python,list,loops,printing,range,Python,List,Loops,Printing,Range,用户将输入一个任意范围,其中结束号是用户希望从这些数字中得到的完美数字,并将这些数字附加到列表中,然后打印列表或列表元素。。。 示例代码: 和1=0 和2=0 b=[] 代码运行时没有错误,但不显示任何输出。。。。。请标出我的错误并解释正确的逻辑 提前感谢我认为问题在于您没有定义列表“b”。我建议你定义之后 a=range(1,int(input('enter_num_upto you want perfect num'))) 将b定义为 b=[] 这将告诉程序存在一个列表“b”,然后您可以

用户将输入一个任意范围,其中结束号是用户希望从这些数字中得到的完美数字,并将这些数字附加到列表中,然后打印列表或列表元素。。。 示例代码: 和1=0 和2=0 b=[]

代码运行时没有错误,但不显示任何输出。。。。。请标出我的错误并解释正确的逻辑
提前感谢

我认为问题在于您没有定义列表“b”。我建议你定义之后

a=range(1,int(input('enter_num_upto you want perfect num')))
将b定义为

b=[]
这将告诉程序存在一个列表“b”,然后您可以将项目附加到该列表中。您不能将项目附加到尚不存在的列表中

对于两个变量sum_1和sum_2也应该如此,您不能在“if语句”中有条件地定义它们,因此您应该在程序开始时,在定义b之后立即定义它们

sum_1 = 0
sum_2 = 0
至于代码的逻辑,我建议您不需要sum_2,在通过生成sum_1的for循环之后,检查sum_1是否等于I。但要确保无论何时使用“range”,都将end设置为您想要结束的数字。例如,如果希望范围从1开始到I结束,请使用范围(1,I+1)。这仅用于您的输入。确保在每次迭代后将sum_1设置回0

因此:

sum_1 = 0
sum_2 = 0
a=range(1,int(input('enter_num_upto you want perfect num'))+1)
b=[]
sum_1=0

for i in a:
    for item in range(1,i):
       if (i%item)==0:
          sum_1= sum_1+item
     
    if sum_1==i:
        b.append(i)
    
    sum_1=0



for j in b:
   print(j)