import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
# ...
bot.run('token')
import discord
from discord.ext import commands
async def main():
# асинхронная функция может быть выполнена ТОЛЬКО внутри рабочего цикла
# значит, рабочий цикл уже точно существует и выполняется
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
# конструктор сам по себе не асинхронный, но он выполняется в асинхронном контексте
bot = commands.Bot(command_prefix='!', intents=intents)
# ...
# мы уже в асинхронной функции, поэтому используем await start() вместо run()
await bot.start('token') # main() не завершит работу, пока бот не завершит работу
if __name__ == '__main__':
asyncio.run(main()) # создаём рабочий цикл. он будет работать, пока main() не завершит работу
UPDATE trial SET trialactive = 0 WHERE trialkey = 'vless:-test'
- обновить запись, где столбец trialkey
равен строке "vless:-test"UPDATE trial SET trialactive = 0 WHERE trialkey = vless:-test
- обновить запись, где столбец trialkey
равен столбцу vless:-test
, а такого столбца у тебя нет.# Never do this -- insecure!
) допускает ту же самую ошибку, что и твоё cursor.execute(f'UPDATE trial SET trialactive = 0 WHERE trialkey = {results}')
и другие запросы.# This is the qmark style used in a SELECT query:
params = (1972,)
cur.execute("SELECT * FROM lang WHERE first_appeared = ?", params)
class MetaTest(type):
def __call__(self, *args, **kwargs):
print('MetaTest.__call__() is being called...')
instance = super().__call__(*args, **kwargs)
print(f'MetaTest.__call__() returning {instance=}')
return instance
class Test(metaclass=MetaTest):
def __new__(cls):
print('Test.__new__() is being called...')
instance = super().__new__(cls)
print(f'Test.__new__() returning {instance=}')
return instance
def __init__(self):
print(f'Test.__init__() has been called on instance = {self}')
t = Test()
MetaTest.__call__() is being called...
Test.__new__() is being called...
Test.__new__() returning instance=<__main__.Test object at 0x0000028EC8E41700>
Test.__init__() has been called on instance = <__main__.Test object at 0x0000028EC8E41700>
MetaTest.__call__() returning instance=<__main__.Test object at 0x0000028EC8E41700>
# допустим, это наш код
try:
file = open("config.json", "r") # исключение может произойти тут
config = json.load(file) # или тут
print(config)
except FileNotFoundError:
print(">>> Файл не найден!")
except PermissionError:
print(">>> Доступ запрещен!")
finally:
print(">>> Файл закрылся!")
file.close()
{
"model": "granite-3.0-2b-instruct",
"messages": [
{ "role": "system", "content": "Always answer in rhymes." },
{ "role": "user", "content": "Introduce yourself." }
],
"temperature": 0.7,
"max_tokens": -1,
"stream": false
}
def on_tab_changed(e):
current_tab = t.selected_index # см. свойство https://flet.dev/docs/controls/tabs#selected_index
# далее в зависимости от current_tab выполняешь тот или иной код
# это может выглядеть как-то так:
if current_tab == 0:
tab_a_code()
elif current_tab == 1:
...
def tab_a_code():
... # тут что-то делаешь при открытии первой вкладки
print(f'{(10 + 20) / 100:.40f}') # 0.2999999999999999888977697537484345957637
print(f'{0.1 + 0.2:.40f}') # 0.3000000000000000444089209850062616169453
print(30 / 100 == 0.1 + 0.2) # False - результаты отличаются!
# вывести значения переменных rub и kop2
# как числа с плавающей точкой (f),
# округлив их до 0 знаков после запятой.
print(f'{rub:.0f} {kop2:.0f}')
total_sum = 1234 # тыт ты рассчитываешь сумму в копейках, я написал число для простоты
rub = total_sum // 100 # оператор // выполняет деление нацело, отбрасывая остаток
kop = total_sum % 100 # оператор % выполняет нахождение остатка от деления
print(rub, kop) # и rub и kop - целые числа, поэтому погрешности от плавающей точки нет
from decimal import Decimal
x = Decimal(30)
print(x, x / 100) # 30 0.3
print(Decimal('30') / 100 == Decimal('0.1') + Decimal('0.2')) # True - результат один и тот же!
user_parsing_ok = cur.fetchall()
korteg = ()
for k in user_parsing_ok:
korteg += k
step += 1
korteg = tuple(item[0] for item in user_parsing_ok)
вы делаете конкатенацию кортежей по одному. Напомню, что при конкатенации создаётся новый кортеж - так что при добавлении трёхмиллионного элемента у вас в памяти будет один кортеж с 2999999 элементами и один кортеж с 3000000 элементами. Это дело будет люто, бешено, неиллюзорно жрать память, а значит, свопиться на диск. Что не прибавит скорости.проверяет условие 42 <= r1 and r2 <= 88
if 42 <= r1 <= 88 and 42 <= r2 <= 88:
@client.event async def on_ready():
попало внутрь обработчика события.input() не сохраняет значения в списке
res_int = ''.join(i if i.isdigit() else ' ' for i in s).split()