Как сделать последовательность чисел 2 в n-ой степени?
def powers_of_two(n):
i = 1
a = []
for x in range(n):
a.append(i ** 2)
i = i + 1
return a
print((powers_of_two(0))) #-> [1]))
print((powers_of_two(1))) #-> [1, 2])
print((powers_of_two(4))) #-> [1, 2, 4, 8, 16])
Последовательноть должна быть вида (#-> в коментариях в коде): [1, 2, 4, 8, 16]
Ответы (2 шт):
Автор решения: Qwertiy
→ Ссылка
def powers_of_two(n):
return [1<<i for i in range(n+1)]
print((powers_of_two(0))) # [1]
print((powers_of_two(1))) # [1, 2]
print((powers_of_two(4))) # [1, 2, 4, 8, 16]
Автор решения: Сергей
→ Ссылка
Если исправить код в вопросе:
а) желательно убрать лишнюю переменную,
б) надо расширить диапазон на 1 степень,
в) надо возводить не в квадрат, а в степень.
def powers_of_two(n):
a = []
for i in range(n+1):
a.append(2**i)
return a
print((powers_of_two(0))) #-> [1]))
print((powers_of_two(1))) #-> [1, 2])
print((powers_of_two(4))) #-> [1, 2, 4, 8, 16])