正在编写不带range()方法的函数



大家好,我正在尝试编写打印[5,6,8,9,10,11]和[5,8,11]的函数,但它不能只打印[5,12]吗

我尝试了不同的方法,也做了一些研究,但没有range((方法就无法打印出来。如何在不使用range((方法的情况下打印?

def asc_range(start,end,increment = 1):
i = start
for i in [start,end]:
yield i 
i += increment 
print list(asc_range(5,12))  

for循环用于在序列上迭代,在这种情况下,您有list[5,12]

它只打印5和12,因为你有:

for i in [start,end]: # for i in [5,12]:

在第一次迭代中,我将是5,在第二次迭代中我将是12。

你应该这样做:

def asc_range(start,end,increment = 1):
i = start
while i <= end:
if i != 7:
yield i
i += increment
print (list(asc_range(5,12)))

编辑:

你可以做这样的事情,但它没有任何意义。用这种方式做:

ar=[]
def asc_range(start,end):
for i in [start]:
if i == end:
ar.append(end)
return ar
else:
if i != 7:
ar.append(i)
return asc_range(i + 1, end)
print (list(asc_range(5,12)))

最新更新