---
title: Is There a Way to Substring a String in Python
---

## Is There a Way to Substring a String in Python

Python offers many ways to substring a string. It is often called 'slicing'.

It follows this template:

```python
string[start: end: step]
```
Where,

`start`: The starting index of the substring. The character at this index is included in the substring. If _start_ is not included, it is assumed to equal to 0.

`end`: The terminating index of the substring. The character at this index is _NOT_ included in the substring. If _end_ is not included, or if the specified value exceeds the string length, it is assumed to be equal to the length of the string by default.

`step`: Every 'step' character after the current character to be included. The default value is 1. If the _step_ value is omitted, it is assumed to equal to 1.

#### Template

`string[start:end]`: Get all characters from index _start_ to _end-1_

`string[:end]`: Get all characters from the beginning of the string to _end-1_

`string[start:]`: Get all characters from index _start_ to the end of the string

`string[start:end:step]`: Get all characters from _start_ to _end-1_ discounting every _step_ character


#### Examples

* **Get the first 5 characters of a string**

```python
string = "freeCodeCamp"
print(string[0:5])
```
Output:
```shell
> freeC
```

Note: `print(string[:5])` returns the same result as `print(string[0:5])`

* **Get a substring of length 4 from the 3rd character of the string**

```python
string = "freeCodeCamp"
print(string[2:6])
```
Output:
```shell
> eeCo
```

Please note that the start or end index may be a negative number. A negative index means that you start counting from the end of the string instead of the beginning (i.e from the right to left). Index -1 represents the last character of the string, -2 represents the second to last character and so on...

* **Get the last character of the string**

```python
string = "freeCodeCamp"
print(string[-1])
```
Output:
```shell
> p
```

* **Get the last 5 characters of a string**

```python
string = "freeCodeCamp"
print(string[-5:])
```
Output:
```shell
> eCamp
```

* **Get a substring which contains all characters except the last 4 characters and the 1st character**

```python
string = "freeCodeCamp"
print(string[1:-4])
```
Output:
```shell
> reeCode
```

#### More examples
```py
str = “freeCodeCamp”

print str[-5:-2] # prints ‘eCa’
print str[-1:-2] # prints ‘’ (empty string)
```

* **Get every other character from a string**

```python
string = "freeCodeCamp"
print(string[::2])
```
Output:
```shell
> feCdCm
```