Terlambat ke pesta, tetapi bagi siapa pun yang ditugasi membuat sendiri atau ingin melihat cara kerjanya, berikut fungsi dengan bonus tambahan untuk mengatur ulang nilai start-stop berdasarkan kenaikan yang diinginkan:
def RANGE(start, stop=None, increment=1):
if stop is None:
stop = start
start = 1
value_list = sorted([start, stop])
if increment == 0:
print('Error! Please enter nonzero increment value!')
else:
value_list = sorted([start, stop])
if increment < 0:
start = value_list[1]
stop = value_list[0]
while start >= stop:
worker = start
start += increment
yield worker
else:
start = value_list[0]
stop = value_list[1]
while start < stop:
worker = start
start += increment
yield worker
Kenaikan negatif:
for i in RANGE(1, 10, -1):
print(i)
Atau, dengan start-stop terbalik:
for i in RANGE(10, 1, -1):
print(i)
Keluaran:
10
9
8
7
6
5
4
3
2
1
Kenaikan reguler:
for i in RANGE(1, 10):
print(i)
Keluaran:
1
2
3
4
5
6
7
8
9
Kenaikan nol:
for i in RANGE(1, 10, 0):
print(i)
Keluaran:
'Error! Please enter nonzero increment value!'