这些是工作时吗?我怎样才能打印结果?

问题描述 投票:0回答:0

我正在制作这个 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 循环上?谢谢!

python if-statement while-loop printing return
© www.soinside.com 2019 - 2024. All rights reserved.