Software Engineering

# 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  ==>         # [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), )
test.assert_equals(powers_of_two(1), [1, 2])
test.assert_equals(powers_of_two(4), [1, 2, 4, 8, 16])
``````