raw_input()
берет именно то, что пользователь набрал и передает в качестве строки. input()
сначала принимает raw_input()
, а затем выполняет eval()
на нем. Основное отличие состоит в том, что input()
ожидает синтаксически корректного оператора python, где raw_input()
этого не делает.
raw_input()
был переименован в input()
, поэтому теперь input()
возвращает точную строку. input()
удален. Если вы хотите использовать старый input()
, то есть вам нужно оценить ввод пользователя в качестве инструкции python, вам нужно сделать это вручную, используя eval(input())
.
Все допустимые символы, которые могут использоваться в URI (URL URL - это тип URI ), определены в RFC 3986 .
Все остальные символы могут использоваться в URL при условии, что они сначала «закодированы». Это включает изменение недопустимого символа для определенных «кодов» (обычно в форме символа процента (%), за которым следует шестнадцатеричное число).
Эта ссылка, Справочник по кодированию URL-адресов HTML , содержит список кодировок недопустимых символов.
Как правило, URI, как определено в RFC 3986 (см. Раздел 2: Символы ), могут содержать любой из следующих 84 символов:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
Примечание что в этом списке не указано, где в URI могут встречаться эти символы.
Любой другой символ должен быть закодирован с использованием процентного кодирования (%
hh
). Каждая часть URI имеет дополнительные ограничения на то, какие символы должны быть представлены словом, закодированным в процентах.
Не совсем ответ на ваш вопрос, но проверка URL-адресов - серьезная проблема Вероятно, вам просто лучше проверить имя домена и оставить часть запроса URL-адреса. Это мой опыт. Вы также можете прибегнуть к проверке связи с URL-адресом и посмотреть, приведет ли он к правильному ответу, но это может быть слишком много для такой простой задачи.
Регулярных выражений для определения URL-адресов предостаточно, погуглите :)
В дополнительном вопросе вы спросили, является ли www.example.com/file [/]. Html
действительным URL-адресом.
Этот URL-адрес недействителен, потому что URL-адрес - это тип URI, а допустимый URI должен иметь схему вроде http:
(см. RFC 3986 ).
Если вы хотели спросить, http: //www.example.com/file[/ provided.html
является допустимым URL-адресом, тогда ответ все равно будет отрицательным, потому что символы квадратных скобок там недопустимы.
Символы квадратных скобок зарезервированы для URL-адресов в этот формат: http: // [2001: db8: 85a3 :: 8a2e: 370: 7334] / foo / bar
(т.е. литерал IPv6 вместо имени хоста)
Стоит прочитать RFC 3986 внимательно, если хотите полностью разобраться в проблеме.