python怎么显示数学表达式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么显示数学表达式?相关的知识,希望对你有一定的参考价值。
参考技术A 如果你使用QTConsole的话,你可以自定义一个_repr_latex_方法改变输出。举个例子:
class Latex_print():
def __init__(self,text): #text为你要输出的LaTex语法数学公式
self.t=text
def _repr_latex_(self):
return "$$%s$$" % self.t.strip('$') #给公式前后添加两个“$$”
text=Latex_print('\sum_i=0^ni^2')
text #或者异端地直接当函数用:Latex_print('\sum_i=0^ni^2')
如何取出包含数学表达式并给出结果的字符串的某些部分
我正在为一个不和谐机器人的命令工作:
有人类型/calc (some-math-expression)
,例如。 /calc 4+5
。
我想评估4+5
并显示答案。为此,我相信我必须从字符串中取出'4+5'
,计算它并返回答案。我该怎么做?
我试过这样做,这可能是愚蠢的,我是新手。 (我正在使用else if
因为我有机器人的其他输入)
else if (message.content === '/calc' + exp) {
return Number(exp);
}
显然,这并没有将'(some-math-expression)'
分配给我之前定义的exp
var。
机器人没有输出。
有没有一种方法可以将字符串拆分为/calc
以及我可以自动分配给变量的其他内容?
谢谢!
虽然this answer可以工作,但这可能会以恶意的方式使用:代码将运行字符串中的所有内容,因此如果有人写出正确的内容,他们可以将代码插入到机器人中,使其容易受到攻击。例如,他们可以使用/calc client.destroy()
将其关闭,或者使用/calc client.token
读取其令牌:最好不要让eval
命令公开访问。
您可以像在其他答案中所述解析表达式,然后使用math.eval()
使其解析表达式。你可以找到文件here。
这是一个简单的例子:
var mathjs = require("mathjs");
let cmdString, mathExpression;
// This will just return the expression
function getExp(command = '') {
return command.split('/calc')[1].trim();
}
cmdString = "/calc4+5"; // If this is the command...
mathExpression = getExp(cmdString); // ...this will be '4+5'
// Make the result with mathjs.eval()
let result = mathjs.eval(mathExpression); // 9
这是一种简单的方法,即使在sqrt()
和cos()
等更复杂的操作中也能正常工作。它也可以使用想象中的数字和各种各样的东西,没有人会问到Discord机器人。
您可以使用RunKit尝试该软件包:link。
解析输入的最简单方法是使用String.split
。那是...
const words = message.content.split(' ');
const command = words[0];
const variables = words.splice(1).join(' ');
这里命令将变为'/ calc',变量将变为'4 + 5'
这是有效的,因为在你需要你的discord bot处理的任何输入中,第一个单词将始终是命令。
let message = '/calc 4+5'
let equation = message.replace(//calc/, '').trim();
let answer = eval(equation)
console.log(equation+' =', answer )
我不知道你是如何获得message.content
和exp
的。但是,根据我的理解,你可以做如下的事情:
let cmdString = "/calc4+5";
let mathExpression = cmdString.split("/calc")[1];
let result = eval(mathExpression);
result
是你的结果值的表达式。
谢谢...
以上是关于python怎么显示数学表达式?的主要内容,如果未能解决你的问题,请参考以下文章