我正在尝试在Python中的函数内部使用某些条件。
我的代码是
def fitfunc(r200,c):
x = dist[:20]*c/r200
A = 2*delta_c_l*rho_0_2[:20]
a1 = A*(r200/c)/(x**2-1)
a2 = 2/(np.sqrt(1-x**2))
a3 = np.arctanh(np.sqrt((1-x)/(1+x)))
a4 = 2/(np.sqrt(x**2-1))
a5 = np.arctan(np.sqrt((x-1)/(x+1)))
if x<1:
return a1*(1-(a2*a3))
elif x>1:
return a1*(1-(a4*a5))
此处rho_0_2
已有一些值。
dist [:20]是一个数组
array([ 0. , 0.09317335, 0.1863467 , 0.27952006, 0.37269341,
0.46586676, 0.55904011, 0.65221346, 0.74538682, 0.83856017,
0.93173352, 1.02490687, 1.11808022, 1.21125357, 1.30442693,
1.39760028, 1.49077363, 1.58394698, 1.67712033, 1.77029369])
当我执行fitfunc()
时,我无法获得执行x>1
和x<1
的条件。我在这做错了什么?
答案 0 :(得分:1)
如果fitfunc()
返回None
,那么x
完全是1
,且两种条件都不正确。