Reputation: 23662
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?
Upvotes: 122
Views: 212402
Reputation: 713
For python3 where -1
indicate the value that to be decremented in each step
for n in range(6,0,-1):
print(n)
Upvotes: 0
Reputation: 2348
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!'
Upvotes: 1
Reputation: 31
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;
Upvotes: 2
Reputation: 151
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
Upvotes: 15
Reputation: 4254
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
Upvotes: 57