diff --git a/lesson.15.py b/lesson.15.py new file mode 100644 index 0000000..2523024 --- /dev/null +++ b/lesson.15.py @@ -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) + + + + + +