Я сам учил себя питону в течение последних 2 недель.Сегодня я столкнулся с проблемой, и у меня есть очень раздражающее решение (я чувствую себя плохо из-за того, кто должен ее читать).Итак, во-первых, я представлю проблему и ее решение.
Проблема: завершите функцию getHost (), которая принимает аргумент из одной строки, представляющий URL-адрес, и возвращает строку, которая соответствует следующему за последним разделу имени хоста.Например, учитывая URL "http://www.example.com/",, функция
вернет строку" example ". Учитывая URL" ftp: //this.is.a.long.name.net / path / to / some / file.php", функция будет возвращать строку« name ». Хотя разделы пути и имени файла в URL являются необязательными, вы можете предположить, что полное имя хоста всегда сопровождаетсяодиночная косая черта ("/").
Мое решение:
def getHost(x):
newstring = ""
listofx = []
for i in range(len(x)):
listofx.append(x[i])
for j in range(2):
a = listofx.index("/")
listofx.reverse()
for k in range(a+1):
listofx.pop()
listofx.reverse()
b = listofx.index("/")
for g in range(len(listofx)-b):
listofx.pop()
for t in range(listofx.count(".")-1):
for o in range(listofx.index(".")+1):
listofx.reverse()
listofx.pop()
listofx.reverse()
for f in range(len(listofx)-listofx.index(".")):
listofx.pop()
for h in range(len(listofx)):
newstring = newstring + listofx[h]
print (newstring)
Я НЕНАВИЖУ свое решение, потому что посмотрите, сколько циклов я использовал. Я чувствовал, что у меня нет выбора, так как строкиявляются неизменными. Я был бы признателен, если бы кто-нибудь показал мне решение с использованием циклов while и методов find () / rfind (). Я не хочу продолжать преобразовывать строки в списки для решения проблем такого типа.