我正在制作这个 python 代码:
import numpy as np
w=1
m = 14
f0 = 2
def s_t(k, m):
assert len(k) == 2, 'k must be numpy array 2D'
k = np.array(k)
p = np.pi/w
v = m -w -f0
kx = k[0]
kz = k[1]
beth = kz - np.sqrt(v**2 - kx**2)
tneg = (np.sin( np.abs((w/f0) * (beth))))/w
tpos = (np.sin( np.abs((w/f0) * (beth))))/w + p/2
while np.abs(beth)< f0/w:
if beth < 0:
t1 = tneg
elif beth >= 0:
t1 = tpos
if t1 == tpos:
t2 = 1.5*p - t1
elif t1 == tneg:
t2 = p/2 - t1
else:
t1 = 0
t2 = 0
return np.array([t1,t2])
st = np.array([t1,t2])
print(st)
我遇到的问题是:在定义“st”之前,python 没有显示任何错误,我想打印 t1、t2 的值来验证程序是否正常工作,但我无法验证因为 python 告诉我:“名称‘t1’未定义”。我是否正确计算了 t1、t2 并且那里的打印不正常,或者问题出在 while,if 循环上?谢谢!