在 for 循环的每次迭代中使用不同的分隔符创建可整除数字的列表
Creating a list of evenly divisible numbers with a different divider on each iteration of a for loop
关于 Whosebug 的第一个问题 :) !
我想在 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]
问题是您的 return 语句在 while 循环内,这意味着您的函数 returns 在第一次迭代之后;防止更多的迭代。进行此小修改会生成以下代码:
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))
关于 Whosebug 的第一个问题 :) !
我想在 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]
问题是您的 return 语句在 while 循环内,这意味着您的函数 returns 在第一次迭代之后;防止更多的迭代。进行此小修改会生成以下代码:
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))