Итак, я хочу сделать команду калькулятора для моего BOT, но проблема в том, что я должен использовать eval()
, что может быть очень опасно. Я пытался использовать ast.literal_eval()
, но это очень ограниченно, и некоторые вычисления не будут работать. Кто-нибудь, пожалуйста, знаете, как я могу решить эту проблему?
@bot.command(case_insensitive=True, aliases=["calc", "math"])
@commands.cooldown(rate=Cooldown.maxcommands, per=Cooldown.seconds, type=Cooldown.mode)
async def calculate(ctx, *, operation=None):
try:
operation = eval(operation)
except ZeroDivisionError:
await ctx.send(":point_right: **Error: division by zero!**")
return
except:
await ctx.send(":thumbsdown: **Error: expression could not be calculated!**")
return
await ctx.send(":1234: **The answer to your calculation is: **`{}`**!**".format(operation))