Для чего переиспользуете имя word в строке word = bot.send_message(message.chat.id, word) - это не запрещено, но для чего?
В вопросе упоминаете переменную anyword -где она в коде?
Глобальные переменные где объявляются в области видимости global?
Почему глобальные переменные не объявлены в функции anserwing как глобальные?
И вообще, такое применение глобальных переменных чревато неприятностями, которые вы и наблюдаете. Никакого контроля за тем, кто что туда пишет, естественно там бардак. Не связывайтесь с глобальными переменными. В этих ваших ботах с ними одна морока - одна переменная на всех пользователей, путаница гарантирована.
AnKus, даже если посмотреть на описание - «ставит» и «проверяет». Это две разных функции. И так далее каждую из этих можно поделить. Не страшно, если функции будут на 1-2 строчки. Страшнее то, что сейчас…
Если вам действительно охота разобраться и починить прогу, я бы вам советовал переписать ее.
В ней присутствуют огромные функции, которые делают всё и сразу. Так быть не должно. Вам надо разделить эту портянку кода на отдельные простые и понятные элементы и отладить их работу по-отдельности. Тогда найти место, где косяк, будет гораздо проще. Кстати, имена функций должны отображать действие (т.е. быть глаголом или начинаться с глагола).
Мне вот глядеть на эту кучу спагетти вообще не хочется. Извините...
Среди прочих советов скажу вот что:
В современных Linux какая-то версия python обычно является частью дистрибутива и используется системой или системными утилитами.
И поэтому нежелательно его как-либо менять, может неожиданно поплохеть системе.
Ставьте нужный вам Python со всякими там pip и т.п. в виртуальное окружение и там над ними издевайтесь как угодно.
Системный Python лучше не трогать.
Для начала вообще иногда удобно поставить anaconda - оно вам и менеджер окружений, и нужные версии ПО подтянет, и для всяких экспериментов удобно.
Это неправильный путь.
Полагаю, лучше делать по-другому.
Каждый проект надо делать в своем окружении, почитай про окружение Python. И в это окружение устанавливать нужные версии Python и соответствующих библиотек. И там все отлаживать и выпускать, фиксируя версии ПО при помощи pip freeze > requirements.txt.
Переводишь проект на новый Python - делаешь новую версию окружения, туда всё подтягиваешь и там всё перенастраиваешь. И опять доводишь до готового продукта и фиксируешь версии ПО.
Не надо лепить как можно больше тэгов.
См.п.3.1 Регламента. Также обратите внимание на п.3.4, 3.6, 3.8.
Причесал ваш вопрос, посмотрите, как примерно он должен выглядеть с учетом указанных пунктов Регламента.
Когда вы регистрировались, вы обещали выполнять Регламент. Если вы будете продолжать нарушать Регламент, ваши вопросы могут быть удалены, а аккаунт заблокирован модераторами временно или навсегда.
Будьте благоразумны.
Во-первых, желательно в вопросе приводить traceback, желательно полный. Оборачивать его тэгом code, если длинный - прятать под спойлер.
Во-вторых, хорошо бы описать словами, как по-вашему должен работать quicksort и сравнить с его описаниями в литературе, а также с кодом.
То, что у вас в коде, по-моему больше похоже на неоптимальную пузырьковую сортировку, да еще с ошибками.
Ну и, конечно, очень полезно сначала долго побиться с проблемой самому, а потом уже приносить сюда конкретную проблему, а не «у меня всё упало».
Я не руководитель проекта, делал программу для себя для автоматизации работы через selenium. Сделал первый вариант, около 1000 строк, он работал, но там сплошной велосипед на костылях. Потратил уйму времени и сил, дорабатывал, причесывал…
Потом устал, решил рефакторить. Почитал, разобрался, сделал по правилам. Код стал в три раза меньше, разделен на слои «локаторы, элементы, страницы, сайт», в общем совсем другое дело. Работает надежней, быстрее на порядок, каждый косяк локализовался и вместо костылей, которые одно ломали, другое чинили, сейчас каждый элемент содержит свои костыли ;), на другое не влияющие.
Осталось тестами покрыть, и будет конфетка.
Я очень доволен.
Надо не бояться рефакторить и выбрасывать легаси. Тратить силы на поддержку принципиально неверного решения - принципиально неверное решение :)))
Для того, чтобы размещать вопрос в тэг python, не достаточно упомянуть о нем. Надо как минимум привести код на python, иначе это просто тэг-спам. См.п.3.1 Регламента.
the_same_Gonta, тут оооочень много раз задавали подобный вопрос. И если просто поискать в строке поиска, выпадет десятка 2-3 похожих вопросов. Пользуйтесь поиском, тем более что вы обязались выполнять Регламент ресурса, а там в п.2.2 сказано, что до размещения вопроса вы обязаны воспользоваться поиском.
Разместите в ответы найденное вами решение, чтобы закрыть вопрос.