IndexErrors - –æ–¥–∏–Ω –∏–∑ –Ω–∞–∏–±–æ–ª–µ–µ —Ä–∞—Å–ø—Ä–æ—Å—Ç—Ä–∞–Ω–µ–Ω–Ω—ã—Ö —Ç–∏–ø–æ–≤ –æ—à–∏–±–æ–∫ –≤—Ä–µ–º–µ–Ω–∏ –≤—ã–ø–æ–ª–Ω–µ–Ω–∏—è –≤ Python. –û–Ω–∏ –≤–æ–∑–Ω–∏–∫–∞—é—Ç, –∫–æ–≥–¥–∞ –≤—ã –ø—ã—Ç–∞–µ—Ç–µ—Å—å –ø–æ–ª—É—á–∏—Ç—å –¥–æ—Å—Ç—É–ø –∫ –∑–Ω–∞—á–µ–Ω–∏—é –∏–Ω–¥–µ–∫—Å–∞ –≤ –Ω–µ—Å—É—â–µ—Å—Ç–≤—É—é—â–µ–º —Å–ø–∏—Å–∫–µ Python . –í –±–æ–ª—å—à–∏–Ω—Å—Ç–≤–µ —Å–ª—É—á–∞–µ–≤ –æ—à–∏–±–∫–∏ –∏–Ω–¥–µ–∫—Å–∞ –ª–µ–≥–∫–æ —É—Å—Ç—Ä–∞–Ω–∏—Ç—å. –í–∞–º –ø—Ä–æ—Å—Ç–æ –Ω—É–∂–Ω–æ –Ω–µ–º–Ω–æ–≥–æ –æ—Ç–ª–∞–¥–∏—Ç—å.
–í —ç—Ç–æ–º —Ä—É–∫–æ–≤–æ–¥—Å—Ç–≤–µ –º—ã —Å–æ–±–∏—Ä–∞–µ–º—Å—è –ø–æ–≥–æ–≤–æ—Ä–∏—Ç—å –æ–± –æ—à–∏–±–∫–µ " indexerror: —Å–ø–∏—Å–æ–∫ –∏–Ω–¥–µ–∫—Å–∞ –≤–Ω–µ –¥–æ–ø—É—Å—Ç–∏–º–æ–≥–æ –¥–∏–∞–ø–∞–∑–æ–Ω–∞ " –æ—à–∏–±–∫–∞. –ú—ã –æ–±—Å—É–¥–∏–º, –∫–∞–∫ —ç—Ç–æ —Ä–∞–±–æ—Ç–∞–µ—Ç, –∏ —Ä–∞—Å—Å–º–æ—Ç—Ä–∏–º –ø—Ä–∏–º–µ—Ä —Å—Ü–µ–Ω–∞—Ä–∏—è, –≤ –∫–æ—Ç–æ—Ä–æ–º –ø—Ä–∏—Å—É—Ç—Å—Ç–≤—É–µ—Ç —ç—Ç–∞ –æ—à–∏–±–∫–∞, —á—Ç–æ–±—ã –º—ã –º–æ–≥–ª–∏ –µ–µ —Ä–µ—à–∏—Ç—å.
–ü—Ä–æ–±–ª–µ–º–∞: indexerror: –≤—ã–≤–µ—Å—Ç–∏ –∏–Ω–¥–µ–∫—Å –≤–Ω–µ –¥–æ–ø—É—Å—Ç–∏–º–æ–≥–æ –¥–∏–∞–ø–∞–∑–æ–Ω–∞
–ö–∞–∫ –≤—Å–µ–≥–¥–∞ –ª—É—á—à–µ –≤—Å–µ–≥–æ –Ω–∞—á–∞—Ç—å —Å —á—Ç–µ–Ω–∏—è –∏ —Ä–∞–∑–±–∏–≤–∫–∏ –Ω–∞—à–µ–≥–æ —Å–æ–æ–±—â–µ–Ω–∏—è –æ–± –æ—à–∏–±–∫–µ: & nbsp;
–≠—Ç–æ —Å–æ–æ–±—â–µ–Ω–∏–µ –æ–± –æ—à–∏–±–∫–µ —Å–æ–æ–±—â–∞–µ—Ç –Ω–∞–º, —á—Ç–æ –º—ã –ø—ã—Ç–∞–µ–º—Å—è –ø–æ–ª—É—á–∏—Ç—å –¥–æ—Å—Ç—É–ø –∫ –∑–Ω–∞—á–µ–Ω–∏—é –≤–Ω—É—Ç—Ä–∏ –º–∞—Å—Å–∏–≤–∞, –Ω–µ –∏–º–µ—é—â–µ–º—É –ø–æ–∑–∏—Ü–∏–∏ –∏–Ω–¥–µ–∫—Å–∞.
–í Python –Ω–æ–º–µ—Ä–∞ –∏–Ω–¥–µ–∫—Å–æ–≤ –Ω–∞—á–∏–Ω–∞—é—Ç—Å—è —Å 0 . –í–æ—Ç —Ç–∏–ø–∏—á–Ω—ã–π –º–∞—Å—Å–∏–≤ Python:
–≠—Ç–æ—Ç –º–∞—Å—Å–∏–≤ —Å–æ–¥–µ—Ä–∂–∏—Ç —Ç—Ä–∏ –∑–Ω–∞—á–µ–Ω–∏—è. –ü–µ—Ä–≤—ã–π —ç–ª–µ–º–µ–Ω—Ç —Å–ø–∏—Å–∫–∞, Java, –∏–º–µ–µ—Ç –∑–Ω–∞—á–µ–Ω–∏–µ –∏–Ω–¥–µ–∫—Å–∞ 0. –ö–∞–∂–¥–æ–µ –ø–æ—Å–ª–µ–¥—É—é—â–µ–µ –∑–Ω–∞—á–µ–Ω–∏–µ –∏–º–µ–µ—Ç –Ω–æ–º–µ—Ä –∏–Ω–¥–µ–∫—Å–∞ –Ω–∞ 1 –±–æ–ª—å—à–µ –ø–æ—Å–ª–µ–¥–Ω–µ–≥–æ. –ù–∞–ø—Ä–∏–º–µ—Ä, –∑–Ω–∞—á–µ–Ω–∏–µ –∏–Ω–¥–µ–∫—Å–∞ Python —Ä–∞–≤–Ω–æ 1.
–ï—Å–ª–∏ –º—ã –ø–æ–ø—ã—Ç–∞–µ–º—Å—è –ø–æ–ª—É—á–∏—Ç—å –¥–æ—Å—Ç—É–ø –∫ —ç–ª–µ–º–µ–Ω—Ç—É –≤ –ø–æ–∑–∏—Ü–∏–∏ –∏–Ω–¥–µ–∫—Å–∞ 3, –±—É–¥–µ—Ç –≤–æ–∑–≤—Ä–∞—â–µ–Ω–∞ –æ—à–∏–±–∫–∞. –ü–æ—Å–ª–µ–¥–Ω–∏–π —ç–ª–µ–º–µ–Ω—Ç –≤ –Ω–∞—à–µ–º –º–∞—Å—Å–∏–≤–µ –∏–º–µ–µ—Ç –∑–Ω–∞—á–µ–Ω–∏–µ –∏–Ω–¥–µ–∫—Å–∞ 2.
–ü—Ä–∏–º–µ—Ä—ã —Å—Ü–µ–Ω–∞—Ä–∏–µ–≤ (–∏ —Ä–µ—à–µ–Ω–∏–π)
–ï—Å—Ç—å –¥–≤–∞ —Ä–∞—Å–ø—Ä–æ—Å—Ç—Ä–∞–Ω–µ–Ω–Ω—ã—Ö —Å—Ü–µ–Ω–∞—Ä–∏—è, –≤ –∫–æ—Ç–æ—Ä—ã—Ö " –∏–Ω–¥–µ–∫—Å —Å–ø–∏—Å–∫–∞ –≤–Ω–µ –¥–∏–∞–ø–∞–∑–æ–Ω–∞ " –≤–æ–∑–Ω–∏–∫–∞–µ—Ç –æ—à–∏–±–∫–∞:
81% —É—á–∞—Å—Ç–Ω–∏–∫–æ–≤ –∑–∞—è–≤–∏–ª–∏, —á—Ç–æ –æ–Ω–∏ –ø–æ—á—É–≤—Å—Ç–≤–æ–≤–∞–ª–∏ —Å–µ–±—è –±–æ–ª–µ–µ —É–≤–µ—Ä–µ–Ω–Ω—ã–º–∏ –≤ —Å–≤–æ–∏—Ö –ø–µ—Ä—Å–ø–µ–∫—Ç–∏–≤–∞—Ö —Ç—Ä—É–¥–æ—É—Å—Ç—Ä–æ–π—Å—Ç–≤–∞ –≤ —Å—Ñ–µ—Ä–µ –≤—ã—Å–æ–∫–∏—Ö —Ç–µ—Ö–Ω–æ–ª–æ–≥–∏–π –ø–æ—Å–ª–µ –ø–æ—Å–µ—â–µ–Ω–∏—è —É—á–µ–±–Ω–æ–≥–æ –ª–∞–≥–µ—Ä—è. –ü–æ–ª—É—á–∏—Ç–µ –ø—Ä–∏–≥–ª–∞—à–µ–Ω–∏–µ –Ω–∞ —É—á–µ–±–Ω—ã–π –∫—É—Ä—Å —Å–µ–≥–æ–¥–Ω—è.
–°—Ä–µ–¥–Ω–∏–π –≤—ã–ø—É—Å–∫–Ω–∏–∫ —É—á–µ–±–Ω–æ–≥–æ –ª–∞–≥–µ—Ä—è –ø–æ—Ç—Ä–∞—Ç–∏–ª –º–µ–Ω–µ–µ —à–µ—Å—Ç–∏ –º–µ—Å—è—Ü–µ–≤ –Ω–∞ –ø–µ—Ä–µ—Ö–æ–¥–Ω—É—é –∫–∞—Ä—å–µ—Ä—É, –æ—Ç –Ω–∞—á–∞–ª–∞ —É—á–µ–±–Ω–æ–≥–æ –ª–∞–≥–µ—Ä—è –¥–æ –ø–æ–∏—Å–∫–∞ —Å–≤–æ–µ–π –ø–µ—Ä–≤–æ–π —Ä–∞–±–æ—Ç—ã.
–î–∞–≤–∞–π—Ç–µ —Ä–∞—Å—Å–º–æ—Ç—Ä–∏–º –∏ —Ç–æ, –∏ –¥—Ä—É–≥–æ–µ. —ç—Ç–∏—Ö —Å—Ü–µ–Ω–∞—Ä–∏–µ–≤.
–°–ø–∏—Å–∫–∏ –∏–Ω–¥–µ–∫—Å–∏—Ä—É—é—Ç—Å—è —Å –Ω—É–ª—è
Следующая программа распечатывает все значения в списке под названием " programming_languages ​​" в оболочку Python:
Сначала мы объявили две переменные. Переменная " programming_languages ​​" хранит список языков, которые мы хотим вывести на консоль. Переменная " count " используется для отслеживания количества значений, которые мы распечатали на консоли.
Затем мы объявили цикл while . Этот цикл выводит значение из " programming_languages ​​" в позиции индекса, хранящейся в " count & rdquo ;. Затем он добавляет 1 к " count " Переменная. Этот цикл продолжается до тех пор, пока не будет установлено значение " count " не больше или равна длине " programming_languages ​​" list.
–î–∞–≤–∞–π—Ç–µ –ø–æ–ø—Ä–æ–±—É–µ–º –∑–∞–ø—É—Å—Ç–∏—Ç—å –Ω–∞—à –∫–æ–¥:
Все значения в нашем списке выводятся на консоль, но возникает ошибка. Проблема в том, что наш цикл продолжается до значения " count " не больше или равна длине " programming_languages ​​& rdquo ;. Это означает, что его последняя итерация будет проверять:
Это значение не существует. Это вызывает IndexError. Чтобы решить эту проблему, мы можем изменить наш оператор с "= на & lt ;. Это гарантирует, что наш список будет повторяться только до значения " count " не меньше длины " programming_languages ​​& rdquo ;. Давайте внесем эту ревизию:
–ù–∞—à –∫–æ–¥ –≤–æ–∑–≤—Ä–∞—â–∞–µ—Ç:
Мы успешно решили ошибку! Наш цикл больше не пытается распечатать программирование_languages ​​[3]. Он останавливается, когда значение " count " равно 3, потому что 3 не меньше длины " programming_languages ​​& rdquo ;.