ppls = [('user1', 73), ('user2', 43), ('user3', 39), ('user4', 37), ('user5', 27),
('user6', 22), ('user7', 11), ('user8', 10), ('user9', 10), ('user10', 9)]
string = 'ТОП 10 ИГРОКОВ:\n'
for ppl in ppls:
string += f'{ppl[0]} - {ppl[1]}\n'
print(string)
len_pass_numbers.lower()
(и прочие) возвращает вам строку 'да', а вы сравниваете с 'Да'. chars
- пустой.from string import digits, ascii_lowercase, ascii_uppercase, punctuation
await
заставляет ожидать завершения всей функции и только потом происходит переход к следующей итерации.asyncio.create_task
, то создается и запускается фоновая задача - цикл продолжается после запуска этой асинхронной функции и не ждет ее завершения.хотя в функции pool_user нет ничего, что могло бы блокировать асинхронный цикл
if await user.connect()
await bot.send_message
except:
pass
Никаких ошибок бот не выдает
учитывая то, что все функции асинхронные?а с чего ты решил что они все асинхронные? С базой ты синхронно работаешь, а у gspread поди синхронные http запросы (это и будет основное место блокирови). Ищи асинк версии этих библиотек или запускай синхронный код в run_in_executor
У меня имеется три файлаХоть 50 файлов, глобальная область видимости одна.
нуждаюсь в этом чисто для своего развития умений программирования на pythonВ этом случае нужно вначале пояснение, что делает ваша программа и зачем в ней авторизация. Учебный проект не повод делать вредные и неправильные вещи, а почему не стоит хранить пароли в открытом виде и почему не надо использовать f-строки в sql запросах дано много других ответов, которые можно найти поиском.
не сумел разобраться