在for循环的每次迭代中使用不同的除法器创建均匀可除数的列表

时间:2019-12-13 04:34:40

标签: python list for-loop modulus

关于stackOverflow的第一个问题:)! 我想在for循环的每次迭代中用不同的除法器除以范围列表: 为此,我考虑过在每次迭代中更改x。我尝试了各种不同的操作,例如将x制成列表,以及其他多种即兴的方式,但无济于事。我不知道为什么代码似乎可以正确迭代,但是x的值却不会随着x -= 1的变化而变化。
最终目标是比较这些列表并找到相似的均分数字。但是一次只有一件事...

这是代码:

def divisible(x):
    lst1 = []
    while x >= 2:
        for each in range(0, 100001, 20):
            if each % x == 0:
                lst1.append(each)
        x -= 1
        return lst1



print(divisible(19))

仅打印x的第一个值:

[0, 380, 760, 1140, 1520, 1900, 2280, 2660, 3040, 3420, 3800, 4180, 4560, 4940...etc]

1 个答案:

答案 0 :(得分:0)

问题是您的return语句在while循环内,这意味着您的函数在第一次迭代后返回;防止更多迭代。进行较小的修改将导致以下代码:

def divisible(x):
    lst1 = []
    while x >= 2:
        for each in range(0, 100001, 20):
            if each % x == 0:
                lst1.append(each)
        x -= 1
    return lst1



print(divisible(19))