Как правильно прописывать математические действия в коде?
Вопрос по своей сути простой, но я хочу узнать самый быстрый и надежный способ! Имеется такой фрагмент кода:
async with state.proxy() as data:
try:
for id_inbd in cur.execute(f"SELECT name FROM wins WHERE name = '{tuple(data.values())[1]}'").fetchone():
gw = cur.execute(f"SELECT game,win FROM wins WHERE name = '{id_inbd}'").fetchone()
gw_all = cur.execute(f"SELECT game,win FROM wins_all WHERE name = '{id_inbd}'").fetchone()
game1 = int(tuple(data.values())[2]) + int(gw[0])
win1 = int(tuple(data.values())[3]) + int(gw[1])
game_all = int(tuple(data.values())[2]) + int(gw_all[0])
win_all = int(tuple(data.values())[3]) + int(gw_all[1])
cur.execute(f'UPDATE wins SET game = ?, win = ? WHERE name = ?', (game1, win1, id_inbd,))
cur.execute(f'UPDATE wins_all SET game = ?, win = ? WHERE name = ?', (game_all, win_all, id_inbd,))
base.commit()
except TypeError:
cur.execute('INSERT INTO wins VALUES (?, ?, ?, ?)', tuple(data.values()))
cur.execute('INSERT INTO wins_all VALUES (?, ?, ?, ?)', tuple(data.values()))
base.commit()
Математические действия закрепляются переменной, но мне кажется, что такой вариант кода неправильный! Имеется ли смысл хранить вычисления в переменных, или лучше производить расчеты непосредственно в аргументах записи в бд? Жду ваше мнение и критику, касательно этого кода.