Почему я продолжаю получать IndexError: индекс списка вне диапазона

#python-3.x

#python-3.x

Вопрос:

Это моя программа

Почему я продолжаю получать ошибку индекса всякий раз, когда я указываю менее 3 в аргументе командной строки

Это пример вывода

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

1. Когда вы предоставляете менее 3 аргументов в своей командной строке, вы все еще пытаетесь получить доступ к sys.argv[1] и sys.argv[2] , даже если их там нет.

2. 1) Вы можете добавить свой исходный код непосредственно к вопросу вместо изображения. 2) С python3 fruits.py apple вы передаете только 1 аргумент, но пытаетесь получить 2-й и 3-й. Если вы используете python3 fruits.py apple arg2 arg3 , это не вызовет ошибку.

3. Оу, хорошо, я понял, как мне это исправить, ты??

Ответ №1:

Потому что вы проверяете после присвоения значений.

Попробуйте реализовать оператор If else.

если (имеет 3 аргумента):

 assign values
  

ещё:

 print('Missing/Many Arguments')
  

Ответ №2:

Кстати, гораздо лучше поместить фактический код вместо изображения.

Вы пытаетесь получить индекс 2 (3-й элемент в списке) списка, в котором есть только 2 элемента, когда вы это делаете second_arg = sys.argv[2] . Поскольку список не такой длинный, именно поэтому он выдает ошибку.

Возможно, вы захотите выполнить свои назначения после вашего оператора if. Таким образом, вы будете знать, что можете индексировать так далеко.