--- title: Range Method --- # Range Function If you need to iterate over a sequence of numbers, the built-in function range() comes in handy. It generates arithmetic progressions: #### Example Usage ```py for i in range(5): print(i) ``` #### Output ``` 0 1 2 3 4 ``` #### Example with optional additional arguments ```py # A range function call. range(start, stop, step) ``` The first argument, *start*, is the starting number of the sequence. The second argument, *stop*, means to generate numbers up to, but not including this number. The third argument, *step*, is the amount to increment by. In other words, it's the difference between each number in the sequence. It defaults to 1 if step is not specified. ```py for i in range(3, 12, 2): print(i) ``` #### Output ``` 3 5 7 9 11 ``` #### Notes In Python 2, there are 2 functions for going through a range of numbers: range() and xrange(). Out of these functions, xrange() is the "lazy" function, meaning it generates numbers as necessary instead of actually creating a list of numbers and iterating through them. range(), on the other hand, makes an entire list of numbers and iterates through this list. This makes it a strain on the memory in the case of really long lists. In Python 3, the range() function mimics xrange() as the "lazy" variant, and xrange() itself has been removed.