# Slicing range() function in Python

• Difficulty Level : Basic
• Last Updated : 03 Nov, 2021

`range()` allows users to generate a series of numbers within a given range. Depending on how many arguments the user is passing to the function, the user can decide where that series of numbers will begin and end as well as how big the difference will be between one number and the next.range() takes mainly three arguments.

• start: integer starting from which the sequence of integers is to be returned
• stop: integer before which the sequence of integers is to be returned.
The range of integers end at stop – 1.

• step: integer value which determines the increment between each integer in the sequence

Example:

 `# Python Program to  ``# show range() basics ``   ` `# printing a number ``for` `i ``in` `range``(``10``): ``    ``print``(i, end ``=``" "``) ``print``()`

Output:

`0 1 2 3 4 5 6 7 8 9 `

## Slicing Range function

In Python, range objects are not iterators but are iterables. So slicing a range() function does not return an iterator but returns an iterable instead.

Example:

 `# Python program to demonstrate``# slicing of range function`` ` ` ` `a ``=` `range``(``100``)`` ` `# Slicing range function``ans ``=` `a[:``50``]``print``(ans)`

Output:

`range(0, 50)`

Now our new range ‘ans’ has numbers from 0 to 50 (50 exclusive). So a generalization for understanding this is

`a[start : end : the difference between numbers]`

So doing something like `ans = a[10:89:3]` will have a range of numbers starting from 10 till 89 with a difference of 3 in between them.

Example:

 `# Python program to demonstrate``# slicing of range function`` ` ` ` `a ``=` `range``(``100``)`` ` `# Slicing range function``ans ``=` `a[``10``:``89``:``3``]``print``(ans)`` ` `ans ``=` `a[::``5``]``print``(ans)`

Output:

```range(10, 89, 3)
range(0, 100, 5)```

My Personal Notes arrow_drop_up