## Quick tip- Clearly communicate ranges in your functions' documentation using mathematical notations

2023/11/18

2023/11/18

The mathematicians have a very clear way of telling ranges.

wikipedia.org/wiki/Interval_(mathematics)

The notation is simple -

- Square brackets are inclusive
`(a,b)`

means all x where`a<x<b`

.`{x∈R:a<x<b}`

- Round brackets are non-inclusive
`[a,b]`

means all x where`a<=x<=b`

.`{x∈R:a≤x≤b}`

You can also mix and match ranges.

**Examples**

- Numbers between 0 and 3, including both 0 and 3
`[0,3]`

- Means -
`{x∈R:0<=x<=3}`

- Output =
`{0,1,2,3}`

- Numbers between 0 and 3, including 0 and excluding 3
`[0,3)`

- Means -
`{x∈R:0<=x<3}`

- Output =
`{0,1,2}`

- Numbers between 0 and 3, excluding 0 and including 3
`(0,3]`

- Means -
`{x∈R:0<x<=3}`

- Output =
`{1,2,3}`

- Numbers between 0 and 3, excluding both 0 and 3
`(0,3)`

- Means -
`{x∈R:0<x<3}`

- Output =
`{1,2}`

The python range function - `range(start, stop, step)`

- Notation:
`[start, stop)`

- Range is :
`start <= val < stop`

List slicing - `list[start:stop:step]`

- Notation:
`[start,stop)`

- Range is :
`start <= val < stop`

Turns out, most standard libraries of most languages follow the `[start,stop)`

convention.