嵌套循环产生多个问题

时间:2021-06-28 04:27:12

标签: python for-loop nested-loops

我正在尝试制作一个程序,该程序打印给定范围内的所有友好数字对(不包括通过反转已经打印的数字对,例如 220、284 已打印,284、220 不能打印)。这是我的代码如下:

def factorgiver(number):
    num=1
    factors=[]
    while num<number:
        if number%num==0:
            factors.append(num)
            num+=1
        else:
            num+=1
    return(factors)
def isamicable(number1, number2):
    q1=factorgiver(number1)
    q2=factorgiver(number2)
    w1=0
    w2=0
    for i in q1:
        w1+=i
    for i in q2:
        w2+=i
    print(w1, w2)
    if w1==number2 and w2==number1:
        return True
    else:
        return False
range1=int(input("Enter the first number of the range: "))
range2=int(input("Enter the last number of the range: "))
range2+=1
for i in range(range1, range2):
    w=i+1
    for q in range(w, range2):
        if isamicable(i, q):
            print(i, q)

我已经检查了这两个函数,它们都按预期工作,但是当我运行代码时,它还包括低于我给定范围的数字,并且每次都会给出不同的输出。

1 个答案:

答案 0 :(得分:-1)

您在根级 for 循环和函数中都使用了变量 i。尝试将您的 for 循环放入一个函数中来分离您的作用域,您只需从根级别调用该函数即可。