Почему я получаю индекс вне допустимой ошибки
from tkinter import *
import pytube
import threading
def download():
link = test_url.get()
yt = pytube.YouTube(link)
videos = yt.get_videos()
n = quality.get()
vid = videos[n - 1]
destination = destination_test.get()
vid.download(destination)
def test():
threading.Thread(target=download()).start()
root = Tk()
test_url = StringVar()
quality = IntVar()
destination_test = StringVar()
url_label = Label(text='Enter Url')
quality_label = Label(text='quality')
url_label.grid(row=0, column=0)
quality_label.grid(row=1, column=0)
destination_label = Label(text='Destination')
destination_label.grid(row=2, column=0)
url_entry = Entry(textvariable=test_url)
url_entry.grid(row=0, column=1)
quality_entry = Entry(textvariable=quality)
quality_entry.grid(row=1, column=1)
destination_entry = Entry(textvariable=destination_test)
destination_entry.grid(row=2, column=1)
download_button = Button(text='download', command=test())
download_button.grid(row=3, column=1)
root.mainloop()
Трассировка (последний вызов был последним): Файл "C:\Program Files\JetBrains\PyCharm Community Edition 2017.1.4\helpers\pycharm_jb_unittest_runner.py", строка 35, в main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING) Файл "C:\Python36\lib\unittest\main.py", строка 93, в файле init self.parseArgs (argv) init "C:\Python36\lib\unittest\main.py", строка 140 в файле parseArgs self.createTests(), файл "C:\Python36\lib\unittest\main.py", строка 147, в файле selfTmots createTests) файл "C:\Python36\lib\unittest\loader.py" строка 219, в loadTestsFromNames suites = [self.loadTestsFromName(имя, модуль) для имени в именах] Файл "C:\Python36\lib\unittest\loader.py", строка 219, в suites = = self.loadTestsFromName(name, модуль) для имени в именах] Файл "C:\Python36\lib\unittest\loader.py", строка 153, в loadTestsFromName module = import (имя_модуля) Файл "C:\Users\Matthew\PycharmProjects\test\test.py", строка 37, в download_button = Button(text='download', command=test()) Файл" C: \ Users \ Matthew \ PycharmProjects \ test \ test.py ", строка 19, в тестовой ветке.Thread(target=download()). Start() Файл" C: \ Users \ Matthew \ PycharmProjects \ test \ test.py ", строка 13, в загрузке vid = videos[n - 1] IndexError: индекс списка вне диапазона
1 ответ
Потому что значение вашей переменной 'n' либо равно 0, либо оно больше, чем количество ваших видео на 2 или более.
Что бы ни делало quality.get(), какая бы ни была переменная качества, n=quality.get()
это строка, которая в конечном итоге вызывает ошибку...