Сделал 15 задание

This commit is contained in:
parent d5018b6476
commit 7e309f0766

71
lesson.15.py Normal file
View file

@ -0,0 +1,71 @@
''' ****** Задание 15 из 20 *********
* У программистов особые отношения с двоичной системой счисления — ведь именно в ней работает вся цифровая техника.
Продолжим тренировки в статистической обработке данных и научимся анализировать числа с позиции их представления в двоичной системе.
Напишите программу, которая по списку целых чисел определяет:
количество разрядов;
количество единиц;
количество нулей.
Формат ввода
Вводится последовательность чисел, записанных через пробел.
Формат вывода
Вывести список словарей с требуемой статистикой.
Примечание
Вывод в примерах отформатирован только для визуальной наглядности.
Все пробельные символы при проверке игнорируются.
Порядок словарей обязан совпадать с порядком переданных чисел.
Порядок ключей в словаре не имеет значения.
Подсказка
Напомним, что получить двоичное представление числа можно:
bin(number) - формирует строку, содержащую двоичное представление числа с префиксом 0b
f'{number:b}' - формирует строку, содержащую двоичное представление числа
Пример 1
Ввод
5 8 12
Вывод
[
{
"digits": 3,
"units": 2,
"zeros": 1
},
{
"digits": 4,
"units": 1,
"zeros": 3
},
{
"digits": 4,
"units": 2,
"zeros": 2
}
]
'''
if __name__ == "__main__":
data = []
binary_strings = list(map(lambda x: bin(int(x))[2:], input().split()))
for binary in binary_strings:
data.append({
"digits": len(binary),
"units": binary.count('1'),
"zeros": binary.count('0')
})
print(data)