Python 函数不返回特定值 我用这些参数来建模一个方程,但是当我尝试调用函数为席= 0时,函数不返回任何值。 def zp(T, xi, sig, mu): p = 1/T yp = -log(1 - p) if xi == 0: zp = mu - sig*log(yp); else: zp = mu - (sig/xi)*(1-(yp**-xi)); return(zp) zp(5, 0, 6, 2)

Python 函数不返回特定值 我用这些参数来建模一个方程,但是当我尝试调用函数为席= 0时,函数不返回任何值。 def zp(T, xi, sig, mu): p = 1/T yp = -log(1 - p) if xi == 0: zp = mu - sig*log(yp); else: zp = mu - (sig/xi)*(1-(yp**-xi)); return(zp) zp(5, 0, 6, 2),python,function,jupyter,return-value,equation,Python,Function,Jupyter,Return Value,Equation,也许报税表缩进不正确 def zp(T, xi, sig, mu): p = 1 / T yp = -log(1 - p) if xi == 0: zp = mu - sig * log(yp) else: zp = mu - (sig / xi) * (1 - (yp ** -xi)) return zp 您没有在if语句的两个分支中返回。return(zp)语句似乎是else块的一部分。在return之前添加一行新

也许报税表缩进不正确

def zp(T, xi, sig, mu):
    p = 1 / T
    yp = -log(1 - p)

    if xi == 0:
        zp = mu - sig * log(yp)
    else:
        zp = mu - (sig / xi) * (1 - (yp ** -xi))

    return zp

您没有在if语句的两个分支中返回。
return(zp)
语句似乎是
else
块的一部分。在
return
之前添加一行新行,并将其缩进,以表明它在
if
else
块之外谢谢,我收到了。缩进不正确。还有一件事,为什么函数返回的值与我用计算器手动计算的值不同。日志有什么问题吗here@Dawar根据方法的逻辑,我不确定。也许可以添加一些打印语句来帮助调试。e、 g.
print(f“T={T},p=1/T={p},yp=-log(1-p)={yp}”)
。它返回了一条错误消息T未定义,因为日志有问题。计算器将其计算为基数10,而python将其计算为基数e。我导入了math并将参数修改为math.log10()