Python 无法理解中断的区别和影响

Python 无法理解中断的区别和影响,python,break,Python,Break,我用Python编写了下面的代码来获取一个数的素数因子。它提供了正确的带break的输出,但不能不使用break语句。如果我不使用break,我无法理解为什么输出是这样的 prime_list = [] def get_prime_factors(num): for i in range(2,num+1): if num%i == 0: prime_list.append(i) num = num // i

我用Python编写了下面的代码来获取一个数的素数因子。它提供了正确的带break的输出,但不能不使用break语句。如果我不使用break,我无法理解为什么输出是这样的

prime_list = []
def get_prime_factors(num):

    for i in range(2,num+1):
        if num%i == 0:
            prime_list.append(i)
            num = num // i
            get_prime_factors(num)
            **break**
    else:
        print(prime_list)

get_prime_factors(21)

#Output with break:
[3, 7]

#Output without break:
[3, 7]
[3, 7]
[3, 7, 7]
[3, 7, 7]

通过删除
中断
,每个递归调用都会命中
其他
部分和
打印
我很抱歉,但是
其他
部分的意图没有任何意义。通过删除
中断
,每个递归调用都会命中
其他
部分和
打印
我很抱歉,但是,
else
部分的意图没有任何意义。