将我的For循环结果打印到单个列表中有问题



我需要创建一个函数,该函数打印1k到5k之间的数字列表,该列表可以被x和x+5整除,没有余数。例如,当我运行x= 100的代码时,我得到:[2100](2100、4200)而我的答案应该是[2100,4200]。如果我把print移到函数本身之外,我得到NONE。对python还是个新手,我觉得我错过了一些如此简单的东西

def inrange(x):
list= []
for i in range(1000,5001):
if i%x == 0 and i%(x+5) == 0:
list.append(i)
print(list)
else:
continue

inrange(100)

从for循环中删除print语句,只返回末尾的列表:

def inrange(x):
list= []
for i in range(1000,5001):
if i%x == 0 and i%(x+5) == 0:
list.append(i)

else:
continue
return list

print(inrange(100))

打印两次的原因是每次向列表添加内容时它都会打印。因此只需将print语句移到循环外,如下所示:

def inrange(x):
list= []
for i in range(1000,5001):
if i%x == 0 and i%(x+5) == 0:
list.append(i)

else:
continue

return list
print(inrange(100)) 

最新更新