Decreasing for loops in Python impossible?

PythonLoopsFor Loop

Python 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)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGalView Question on Stackoverflow
Solution 1 - PythonSteve TjoaView Answer on Stackoverflow
Solution 2 - Pythonpratikm View Answer on Stackoverflow
Solution 3 - PythonHandy JodanaView Answer on Stackoverflow
Solution 4 - PythoncjiView Answer on Stackoverflow
Solution 5 - PythonvanzaView Answer on Stackoverflow
Solution 6 - PythonNeoView Answer on Stackoverflow
Solution 7 - PythonMark MorettoView Answer on Stackoverflow
Solution 8 - PythonSREERAG R NANDANView Answer on Stackoverflow