# -*- coding: utf-8 -*-
'''
Задание 4.8

Преобразовать IP-адрес в двоичный формат и вывести на стандартный поток вывода вывод столбцами, таким образом:
- первой строкой должны идти десятичные значения байтов
- второй строкой двоичные значения

Вывод должен быть упорядочен также, как в примере:
- столбцами
- ширина столбца 10 символов

Пример вывода для адреса 10.1.1.1:
10        1         1         1
00001010  00000001  00000001  00000001

Ограничение: Все задания надо выполнять используя только пройденные темы.

'''

ip = '192.168.3.1'

##########
# Создаем шаблон: (немного застрял со столбцами - как совместить ширину в 10 и
# и выводом в восемь символов, в итоге просто вставил пробелы между вставками.
# Это видимо неправильное решение, но пока так.
ip_template = '''  
{0:<10} {1:<10} {2:<10} {3:<10}
{0:>08b}   {1:>08b}   {2:>08b}   {3:>08b}
'''
ip = ip.split('.') #Переносим строку с айпи адресом в список
ip = [int(ip[0]), int(ip[1]), int(ip[2]), int(ip[3])] #Делаем элементы числами

print(ip_template.format(ip[0], ip[1], ip[2], ip[3]))

#Согласен, что не очень красиво. С циклами может проще, но я учусь))

