Decreasing for loops in Python impossible?
PythonLoopsFor LoopPython Problem Overview
I could be wrong (just let me know and I'll delete the question) but it seems python won't respond to
for n in range(6,0):
print n
I tried using xrange and it didn't work either. How can I implement that?
Python Solutions
Solution 1 - Python
for n in range(6,0,-1):
print n
# prints [6, 5, 4, 3, 2, 1]
Solution 2 - Python
This is very late, but I just wanted to add that there is a more elegant way: using reversed
for i in reversed(range(10)):
print i
gives:
4
3
2
1
0
Solution 3 - Python
for n in range(6,0,-1)
This would give you 6,5,4,3,2,1
As for
for n in reversed(range(0,6))
would give you 5,4,3,2,1,0
Solution 4 - Python
for n in range(6,0,-1):
print n
Solution 5 - Python
>>> range(6, 0, -1)
[6, 5, 4, 3, 2, 1]
Solution 6 - Python
0 is conditional value when this condition is true, loop will keep executing.10 is the initial value. 1 is the modifier where may be simple decrement.
for number in reversed(range(0,10,1)):
print number;
Solution 7 - Python
Late to the party, but for anyone tasked with creating their own or wants to see how this would work, here's the function with an added bonus of rearranging the start-stop values based on the desired increment:
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
Negative increment:
for i in RANGE(1, 10, -1):
print(i)
Or, with start-stop reversed:
for i in RANGE(10, 1, -1):
print(i)
Output:
10
9
8
7
6
5
4
3
2
1
Regular increment:
for i in RANGE(1, 10):
print(i)
Output:
1
2
3
4
5
6
7
8
9
Zero increment:
for i in RANGE(1, 10, 0):
print(i)
Output:
'Error! Please enter nonzero increment value!'
Solution 8 - Python
For python3 where -1
indicate the value that to be decremented in each step
for n in range(6,0,-1): print(n)