Как правильно прописывать математические действия в коде?

Вопрос по своей сути простой, но я хочу узнать самый быстрый и надежный способ! Имеется такой фрагмент кода:

    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()

Математические действия закрепляются переменной, но мне кажется, что такой вариант кода неправильный! Имеется ли смысл хранить вычисления в переменных, или лучше производить расчеты непосредственно в аргументах записи в бд? Жду ваше мнение и критику, касательно этого кода.


Ответы (0 шт):