编写的Python方程式

时间:2016-04-20 21:00:14

标签: python

如何在python代码中获得此等式。它应该等于.343但是当我输入它时我总是得到别的东西。当我在纸上计算时,我能够得到它但是在excel / python中我无法做到。

Equation

我尝试过:

((.310*.290)/.260)/(.310*.290)/(.260+((1-.310)*(1-.290)/1-.260))

给了我7.85

2 个答案:

答案 0 :(得分:1)

您需要将括号中分隔栏下的表达式分组:

>>> (
...     (.310 * .290) / .260
...     /
...     (
...         (.310 * .290) / .260
...         +
...         ((1 - .310) * (1 - .290) / (1 - .260))
...     )
... )
0.3430943785456421

这确保在划分上层表达式结果之前,在条形下添加两个部分

你在尝试中没有这样做,所以你基本上得到了这个:

(
    ((.310 * .290) / .260)
    /
    (.310 * .290)
    /
    (
        .260
        + 
        (
            (1 - .310) * (1 - .290) / 1
            -
            .260
        )
    )
)

我根据优先规则将我和你的尝试分开。注意区别?

(.310 * .290)的结果应首先划分.260,并将条形图的其余部分汇总到其中;你的版本首先将结果从条形图上方划分,然后将 结果除以.260 + ...的结果。那是不一样的表达。

即使在原始表达式中的某些括号也是多余的。乘法和除法在加法和减法之前进行,因此我们可以删除乘法和除法的括号:

(
     .310 * .290 / .260
     /
     (.310 * .290 / .260 + (1 - .310) * (1 - .290) / (1 - .260))
)

或全部在一行:

>>> .310 * .290 / .260 / (.310 * .290 / .260 + (1 - .310) * (1 - .290) / (1 - .260))
0.3430943785456421

答案 1 :(得分:0)

(((.310 * .290) / .260) / (((.310 * .290) / .260) + ( (1-.310) * (1 - .290) / (1 - .260))))