# How to Calculate Powers of 2 in Python

## The challenge

Complete the function that takes a non-negative integer `n`

as input, and returns a list of all the powers of 2 with the exponent ranging from 0 to `n`

(inclusive).

### Examples

```
n = 0 ==> [1] # [2^0]
n = 1 ==> [1, 2] # [2^0, 2^1]
n = 2 ==> [1, 2, 4] # [2^0, 2^1, 2^2]
```

## The solution in Python code

Option 1:

```
def powers_of_two(n):
out = []
for i in range(n+1):
out.append(2**i)
return out
```

Option 2:

```
def powers_of_two(n):
return [2**i for i in range(n+1)]
```

Option 3:

```
def powers_of_two(n):
return [1<<x for x in range(n + 1)]
```

## Test cases to validate our solution

```
import test
from solution import powers_of_two
@test.describe("Fixed Tests")
def fixed_tests():
@test.it('Basic Test Cases')
def basic_test_cases():
test.assert_equals(powers_of_two(0), [1])
test.assert_equals(powers_of_two(1), [1, 2])
test.assert_equals(powers_of_two(4), [1, 2, 4, 8, 16])
```