我有一个文件(datacom300行),其中包含描述一组值及其相关不确定性的组合的表达式。比如:
(18.13053098972887 +/- 0.9408208676613867) + (4.198532451786269 +/- 1.006181051488966)
(11.64429613156244 +/- 0.8494858154859093) / (9.363430186640471 +/- 1.426559761587884)
(8.380090296880461 +/- 0.7207204182841811) - (14.66227215207273 +/- 1.695262722671032) (14.89348010703303 +/- 0.5526766418243718) - (11.38945635408163 +/- 0.6236755388832851)
(7.799527276109394 +/- 0.2574050770442082) + (16.72086955979466 +/- 1.110203643562272)
(9.608384727728524 +/- 0.4631992350332439) + (10.37543680415251 +/- 1.163914272905167) (4.18157352367416 +/- 0.6524763186462224) / (10.3161260811612 +/- 1.110916984908603) (3.776332299345897 +/- 1.075189965311438) - (11.53599019583698 +/- 0.7387217730283737) (14.93653570161044 +/- 1.60794403241016) / (11.83556322752483 +/- 0.466637508245185)
(13.85353967547417 +/- 0.9246529699786543) / (14.20790420838551 +/- 0.3679686461109668) (20.63305806977545 +/- 1.545379194198176) * (10.95731035336255 +/- 1.434931108092665) (20.80371993819163 +/- 1.273124703682392) + (15.93093231553212 +/- 0.5784831928649479)
(13.61241819963037 +/- 0.04285690967801981) - (7.682740816076352 +/- 0.4521933933719993)
每行包含一个表达式。表达式中每个术语的格式为(值+/-不确定性),包括括号。它们通过加法、减法、乘法和除法相结合。通常的运算符优先适用,即:除法和乘法优先于加法和减法。除包含单个表达式的括号外,不使用其他括号。你知道吗
我需要计算每个表达式,并将结果及其不确定性写入一个输出文件,每行一个结果。最后,计算所有表达式及其相关不确定度之和。你知道吗
有人能帮我吗?你知道吗
我知道评估很糟糕,但你可以试试评估(). Ast literal eval只适用于较小的python命令。Using python's eval() vs. ast.literal_eval()?
您可能需要将字符串转换为浮点数。你知道吗
这是一个起点:
这个脚本将产生以下输出:(注意,我剥离了调试输出)
接下来的步骤是:
您还可以使用解析器来进行计算,例如,如果添加不确定的数字与添加它们的值和不确定度是相同的:
如果您这样替换
p_expression_add
,那么生成的答案将是:玩得开心!像这样简单的解析是一个非常有用的工具,您可以随意使用,因为很多棘手的问题在被看作解析问题时会变得更容易。你知道吗
相关问题 更多 >
编程相关推荐