ошибка индекса в python, пожалуйста, помогите исправить

#python #python-3.x #python-requests

#python #python-3.x #python-запросы

Вопрос:

Я получаю ошибку, пожалуйста, помогите ее решить.

 import webbrowser
import pyautogui, time

N= int(input ("Number of URL's to be entered:"))
URL=[]
chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'

for i in range(1,N):
    str= 'Enter'  str(i)   'URL'
    print(str)
    URL[i]= input()

for i in range(1,N):
    webbrowser.get(chrome_path).open(url[i])
    time.sleep(10)
    screenshot = pyautogui.screenshot()
    filename= "test"  str(i)  ".png"
    screenshot.save(filename)
  

Ошибка:

Количество URL-адресов, которые нужно ввести: 5

Введите1url

https://discord.com/channels/423464391791476747/449411261491314698

 Traceback (most recent call last):
  File "C:UsersdilipPycharmProjectsuntitled3sc1.py", line 11, in <module>
    URL[i]= input()
IndexError: list assignment index out of range
  

Комментарии:

1. Индексация списка начинается с 0, а не с 1, поэтому вы переходите на 1 после конца списка.

2. также не используйте str в качестве идентификатора внутри вашего кода. Это создает непреднамеренные осложнения со встроенной str()

Ответ №1:

Чтобы добавить элемент в список, вы должны использовать List_name.append(элемент) .

Кроме того, индекс первого элемента URL равен 0, а не 1. Это должно выполнить задание:

 for i in range(0,N):
a = input(f"Enter {str(i)} URL")
URL.append(a)
  

URL[0] будет содержать первый элемент, а URL [N-1] — последний элемент.

Ответ №2:

Вы создаете пустой список в строке 5:

 URL=[]
  

Затем вы получаете доступ ко второму элементу списка в строке 11. Это выдает ошибку, поскольку в списке нет элементов. Я предполагаю, что вы хотите добавить элемент в список вместо доступа ко второму элементу. Используйте функцию добавления. Смотрите https://docs.python.org/3.8/tutorial/datastructures.html .

Ответ №3:

Смотрите ниже, как должен выглядеть цикл URL-адресов коллекции

 N = 5
URL = []
for i in range(1, N):
    URL.append(input(f'Enter URL {i}'))

print(URL)
  

Комментарии:

1. Файл «C:UsersdilipPycharmProjectsuntitled3sc1.py «, строка 9, в <module> str= ‘Enter’ str(i) ‘URL’ Ошибка типа: объект ‘str’ не вызывается

Ответ №4:

Вы пытаетесь проиндексировать пустой список.

Если вы хотите добавить элементы в список, используйте метод append()

 for i in range(1,N):
    str= 'Enter'  str(i)   'URL'
    print(str)
    URL.append(input())