Spät zur Party, aber für alle, die ihre eigenen erstellen möchten oder sehen möchten, wie dies funktionieren würde, gibt es hier die Funktion mit dem zusätzlichen Bonus, die Start-Stopp-Werte basierend auf dem gewünschten Inkrement neu anzuordnen:
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
Negatives Inkrement:
for i in RANGE(1, 10, -1):
print(i)
Oder mit umgekehrtem Start-Stopp:
for i in RANGE(10, 1, -1):
print(i)
Ausgabe:
10
9
8
7
6
5
4
3
2
1
Regelmäßiges Inkrement:
for i in RANGE(1, 10):
print(i)
Ausgabe:
1
2
3
4
5
6
7
8
9
Null-Inkrement:
for i in RANGE(1, 10, 0):
print(i)
Ausgabe:
'Error! Please enter nonzero increment value!'