【发布时间】:2013-08-28 14:01:31
【问题描述】:
我正在尝试创建一个计算器,它将接收公式和来自各个变量的数据作为输入。
我试图让它尽可能地对用户友好,所以在我看来,用户会插入公式,我的代码会简单地识别公式中的变量。
在此之后,程序会简单地询问每个变量对应的值。
问题是:“如何解析字符串以搜索变量?” 我必须能够识别诸如“pi”和三角函数之类的东西,因为变量可能是角度。
有什么简单的方法可以做到这一点吗?
编辑:这是我目前拥有的代码,这只是我第一个让用户执行代码的方法。但我试图逃避使用 eval 和 exec
from scipy import stats
import matplotlib.pyplot as plt
import numpy as np
from math import*
import math
recept = "."
print("Bem vindo a calculadora de incertezas com base no metodo Monte Carlo")
formula = input("Insira a formula desejada:")
while (recept != ""):
recept = input("Defina as variaveis de acordo com o exemplo:\n EX: P = (media, desviopadrão)")
print (recept)
#Aproach one: Execute code inserted by user: user would define the variables.
if(recept != ""):
exec(recept)
print (exec(formula))
【问题讨论】:
-
你能发布一些你迄今为止尝试过的代码吗?
-
我觉得我不太了解你。你的意思是这样的:5pi,计算器会自动识别 pi 为 3.14 并乘以 5?
-
是的,也许我表达错了。例如:P = VIcos(2*pi*f),起初 i 虽然只是解析什么是文本,但并不总是什么是文本是一个变量。在这种情况下,只有 V、I 和 f 是变量。