Вопрос задан 07.10.2026 в 23:44.
Предмет Информатика.
Спрашивает Карпова Соня.
Python. Напишите программу, которая принимает на вход список из строк, содержащих числа, и возвращает список из чисел, которые являются степенями двойки. Если в исходном списке есть строки, которые не являются числами или не являются степенями двойки, программа должна игнорировать эти элементы. Например, если на входе список ['2', '4', '8', '9', '16', 'abc'], то программа должна вернуть список [2, 4, 8, 16], так как только 2, 4, 8 и 16 являются степенями двойки, а строка 'abc' не является числом.
Ответы на вопрос
Отвечает Гильдерман Лера.
Можно решить задачу так: нужно пройти по всем строкам исходного списка, попробовать преобразовать строку в число, а затем проверить, является ли это число степенью двойки.
Число является степенью двойки, если при делении его на 2 остаток всегда равен нулю, пока оно не станет равным 1. Например, для числа 8: 8 → 4 → 2 → 1, значит это степень двойки.
Пример программы:
Python
def powers_of_two(numbers):
result = []
for item in numbers:
try:
num = int(item)
except ValueError:
continue
if num > 0:
n = num
while n % 2 == 0:
n //= 2
if n == 1:
result.append(num)
return result
numbers = ['2', '4', '8', '9', '16', 'abc']
print(powers_of_two(numbers))
Результат выполнения:
[2, 4, 8, 16]В программе используется блок try-except, чтобы игнорировать строки, которые нельзя преобразовать в число. После преобразования проверяется только положительное число, так как степени двойки бывают только положительными. Затем число делится на 2 до тех пор, пока это возможно. Если в итоге получается 1, значит исходное число было степенью двойки.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

