#python #python-3.x
#python #python-3.x
Вопрос:
я создал простой скрипт для поиска URL-адресов в строках, однако я продолжаю получать эту ошибку:
Traceback (most recent call last):
File "J:Desktopurlformstringtest.py", line 17, in <module>
url = url string[a]
IndexError: string index out of range
вот мой код:
while True:
url = "No Url"
string = input("What is your string: ")
string = string " "
for x in string:
if x == "h":
a = string.find(x)
if string[a 1] == "t" and string[a 2] == "t" and string[a 3] == "p" and string[a 4] == "s":
a = a 4
url = "http"
while True:
a = a 1
if a == " ":
break
break
url = url string[a]
print(url)
я программирую всего несколько недель, поэтому, пожалуйста, не используйте сложный язык
Комментарии:
1. Пожалуйста, исправьте отступ. Это очень важно в Python.
Ответ №1:
Это не работает, потому что ваш код не имеет никакого смысла:
while True:
a = a 1 # increment index
if a == " ": # it's an integer, this will *never* be True
break # so this never happens
break # why 'break' again?! This line would never run either
url = url string[a] # index is off the end of the string -> IndexError
Минимальное исправление, позволяющее остановить ошибку, является:
if string[a] == " ":
т.е. фактически проверяйте символ в этой позиции, а не целочисленный индекс.
Однако, я думаю, что вы пытаетесь переключиться с 'https'
на 'http'
и остановиться на первом пробеле, и в этом случае следующая строка выполнит эту работу:
string = string.replace("https", "http").split()[0]
.replace
просто ничего не будет делать, если 'https'
его нет в string
.