Форум сайта python.su
0
Суть задачи: преобразовать IP-адрес из двоичной(0111011.00101101.00001101.00001010) в шестнадцатиричную систему исчисления.
И что более сложно для меня - провести проверку входного аргумента: адрес должен состоять из 4 частей, разделенных точками, числа в диапазоне, соответственно, 0-255.
подскажите, если кто в курсе, чего с этим делать
Отредактировано Alex_3001 (Ноя. 8, 2016 00:39:43)
Офлайн
857
>>> int('0111011', 2) 59 >>> hex(int('0111011', 2)) '0x3b' >>> hex(int('0111011', 2))[2:] '3b' >>>
>>> import re >>> >>> def is_correct_ip(s): ... pat = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$' ... if re.search(pat, s): ... lst = map(int, s.split('.')) ... return all(i <= 255 for i in lst) ... return False ... >>> is_correct_ip('127.0.0.1') True >>> is_correct_ip('127.0.256.1') False >>> is_correct_ip('0000127.0.0.1') False >>>
Отредактировано py.user.next (Ноя. 8, 2016 02:43:49)
Офлайн