Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2016 00:39:21

Alex_3001
Зарегистрирован: 2016-11-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка корректности строки

Суть задачи: преобразовать IP-адрес из двоичной(0111011.00101101.00001101.00001010) в шестнадцатиричную систему исчисления.
И что более сложно для меня - провести проверку входного аргумента: адрес должен состоять из 4 частей, разделенных точками, числа в диапазоне, соответственно, 0-255.
подскажите, если кто в курсе, чего с этим делать

Отредактировано Alex_3001 (Ноя. 8, 2016 00:39:43)

Офлайн

#2 Ноя. 8, 2016 02:38:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

проверка корректности строки

  
>>> 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version