Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 13

IndexError: list index out of range

23.07.2022, 22:00. Показов 1590. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, столкнулся с такой проблемой: создавал телеграм-бота, и при вводе боту команды "/add", в консоли вылезает ошибка: "Traceback (most recent call last):
File "/home/Shitter/echobot", line 70, in <module>
bot.polling(none_stop=True)
File "/home/Shitter/.local/lib/python3.9/site-packages/telebot/__init__.py", line 621, in polling
self.__threaded_polling(non_stop=non_sto p, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeou t,
File "/home/Shitter/.local/lib/python3.9/site-packages/telebot/__init__.py", line 695, in __threaded_polling
raise e
File "/home/Shitter/.local/lib/python3.9/site-packages/telebot/__init__.py", line 651, in __threaded_polling
self.worker_pool.raise_exceptions()
File "/home/Shitter/.local/lib/python3.9/site-packages/telebot/util.py", line 147, in raise_exceptions
raise self.exception_info
File "/home/Shitter/.local/lib/python3.9/site-packages/telebot/util.py", line 93, in run
task(*args, **kwargs)
File "/home/Shitter/echobot", line 59, in show
date = command[-5].lower()
IndexError: list index out of range
>>> "


Вот собственно код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from random import choice
 
import telebot
 
token = '****************'
 
bot = telebot.TeleBot(token)
 
 
RANDOM_TASKS = ['Выкинуть мусор', 'Сделать уроки', 'Подстричь газон', 'Посмотреть фильм']
 
todos = dict()
 
 
HELP = '''
Список доступных команд:
* /print  - напечать все задачи на заданную дату
* /add - добавить задачу
* /random - добавить на сегодня случайную задачу
* /help - Напечатать help
'''
 
 
def add_todo(date, task):
    date = date.lower()
    if todos.get(date) is not None:
        todos[date].append(task)
    else:
        todos[date] = [task]
 
 
@bot.message_handler(commands=['help'])
def help(message):
    bot.send_message(message.chat.id, HELP)
 
 
@bot.message_handler(commands=['random'])
def random(message):
    task = choice(RANDOM_TASKS)
    add_todo('сегодня', task)
    bot.send_message(message.chat.id, f'Задача {task} добавлена на сегодня')
 
 
@bot.message_handler(commands=['add'])
def add(message):
    _, date, tail = message.text.split(maxsplit=2)
    task = ' '.join([tail])
    # TODO: 1
    if len(task) < 3:
        bot.send_message(message.chat.id, 'Задачи должны быть больше 3х символов')
    add_todo(date, task)
    bot.send_message(message.chat.id, f'Задача {task} добавлена на дату {date}')
 
 
@bot.message_handler(commands=['print'])
def print_(message):
    # TODO: 2
    dates = message.text.split(maxsplit=1)[1].lower().split()
    response  = ''
    for date in dates:
        tasks = todos.get(date)
        response += f'{date}: \n'
        for task in tasks:
            response += f'[ ] {task}\n'
        response += '\n'
    bot.send_message(message.chat.id, response)
 
 
bot.polling(none_stop=True)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2022, 22:00
Ответы с готовыми решениями:

IndexError: list index out of range
Уважаемые господа форумчане, начал изучать пайтон, и вот что не понятно: fileWords = open(&quot;words.txt&quot;,'r') while 1: ...

IndexError: list index out of range
from tkinter import* from random import randint def make_matrix(z,width,height): h= for i in range(height): d=...

IndexError: list index out of range
Добрый день. Подскажите, что делаю неправильно. Хочу создать двумерный массив и заполнить его из другого массива. Когда n становится...

4
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
23.07.2022, 23:00
File "/home/Shitter/echobot", line 59, in show
date = command[-5].lower()
в файле /home/Shitter/echobot есть строка 59, где Вы пытаетесь достать пятое с конца значение. При выполнении кода, там его нет, код падает.

Например вот такой код приведет к идентичной проблеме:
Python
1
2
lst = [1, 2]
print(lst[-5])
0
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 13
23.07.2022, 23:58  [ТС]
А как можно решить эту проблему? Пока не очень хорошо разбираюсь.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
23.07.2022, 23:59
Цитата Сообщение от SoUseless Посмотреть сообщение
А как можно решить эту проблему?
как не пытаться достать из списка то, чего так нет?
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
24.07.2022, 04:56

Не по теме:

Цитата Сообщение от SoUseless Посмотреть сообщение
Пока не очень хорошо разбираюсь.
Но пишу телеграмм боты


Цитата Сообщение от SoUseless Посмотреть сообщение
А как можно решить эту проблему?
1. Прочитать про индексацию списка (например тут). Обратить внимание что индексы могут быть отрицательными.
2. Посмотреть что именно выводит date (та которая date = command[-5].lower()) и есть ли элемент с индексом "-5".

Добавлено через 8 минут
Грубо говоря: приходит список из 3 значений, а Вы ему говорите дай мне 5 элемент с конца списка. От того и ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.07.2022, 04:56
Помогаю со студенческими работами здесь

IndexError: list index out of range
port random Array = ,,,] list = Array=2 def users_choice(Array,user_input): if user_input == &quot;u&quot;: i = 0 i = 0 ...

IndexError: list index out of range
class Vector: n = 1 A = *n B = *n for i in range(n): A = 0 def __init__(self, n): self.n...

IndexError: list index out of range
Почему-то выводится ошибка. Хотя длину списка я не изменяю. a=list(map(int,input().split())) b= a.sort() for i in...

IndexError: list index out of range
n,k=int(input()),int(input()) a= l= for r in range(1,n+1): a.append(r) for _ in range(k*2): l.append(int(input())) for g...

IndexError: list index out of range
В питоне вылазит ошибка IndexError: list index out of range import re print(&quot;Введи значение A в 9 системе счисления&quot;) Error...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru