Давайте рассмотрим простую задачку на работу со строками.
#Напишите метод для замены всех пробелов в строке на '%20'. #Игнорируйте любые дополнительные пробелы в начале или конце строки.
Вероятно, вы замечали, что URL-адреса никогда не содержат пробелов. Если вы попробуете ввести в браузере URL и включите в него пробел, браузер конвертирует его в экранированный символ «%20». Попробуйте набрать в Chrome http://google.com/ /
, и вы увидите, что адрес преобразуется в http://google.com/%20/
. Не то чтобы этот адрес привел вас куда-то, но принцип должен быть понятен.
В этой задаче нам нужно написать метод, который будет делать то, что только что сделал ваш браузер: принимать строку и возвращать ее в зашифрованной форме, с пробелами, замененными на «%20».
Начнем с определения нашего метода, принимающего строку s
.
def urlify(s): pass
Теперь давайте обратим внимание на дополнение к условию: нужно игнорировать все дополнительные пробелы в начале или конце строки. Разделаемся с этим сразу же, применив метод Python strip()
. Этот метод, собственно, удаляет любые пробелы в начале и конце строки.
def urlify(s): s = s.strip()
Теперь давайте подумаем, как выловить пробелы внутри строки. Мы можем перебрать строку в цикле и проверить каждый символ, заменяя обнаруженные пробелы. Но есть и более простой способ сделать это. В Python есть встроенные методы, позволяющие делить строку по заданному символу. После разделения мы сможем соединить отрезки вместе, заменив пробелы на «%20».
Начнем с вызова метода split()
. Мы можем вызвать его после нашего метода .strip()
. Этот метод принимает один аргумент — символ-разделитель. В нашем случае это единичный пробел.
def urlify(s): s = s.strip().split(" ")
Это дает нам список строк. Например, если строка была «Hello my name is Pythonist», в списке s
теперь содержатся строки ["Hello", "my", "name", "is", "Pythonist"]
.
Теперь нам нужно склеить все обратно. Метод join()
немного странный. Вы вызываете его для строки, которую хотите вставить между словами, а список слов передаете в качестве аргумента. Таким образом, если наша замещающая строка — «%20», мы вызываем после нее метод .join()
и передаем ему в качестве аргумента наш список s
. Можно переопределить переменную s
, но здесь мы просто вернем результат.
def urlify(s): s = s.strip().split(" ") return ("%20").join(s)
Вот и все! Повторим:
strip()
. split()
. join()
объединяет строку, вставляя между ее частями «%20». Передаем нашему методу urlify
строку, содержащую пробелы. Должна вернуться строка, в которой эти пробелы будут заменены на экранированный символ URL.
print(urlify("My name is Pythonist ")) # -> My%20name%20is%20Pythonist
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…