UnboundLocalError: локальная переменная 'Y_p', на которую ссылаются до назначения - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть следующий скрипт:

guess = np.linspace(0,20/1000, num = 21)

def calc_U_LC_a(t)-> "U_LC_a": 
    alpha_c = calc_alpha_c(t)  
    S_p = calc_S_p(t)
    M_p = calc_M_p(t)
    p_b_LC  = calc_p_b(t, min(fy,fu/1.15)) 
    Y_p = calc_Y_p(t)
    p_c_LC = calc_p_c(t)  

    if pl_net_LC >= 0:
        U_P = (Y_p * pl_net_LC) / (alpha_c * p_b_LC)
    else:
        U_P = 1.02 * 2 * (- pl_net_LC / p_c_LC)

    M_Sd_a   = 500e3
    S_Sd_a   = 500e4

    U_M = (1.02 * 2 / alpha_c) * (abs(M_Sd_a)/M_p)  
    U_S = (1.02 * 2 / alpha_c) * (S_Sd_a/S_p)  
    U_LC_a = ((U_M + U_S ** 2) ** 2) + U_P ** 2 
    return U_LC_a

def fun_LC_a(t): 
    return calc_U_LC_a(t) - 1 

def calc_iter(fun,guess):
    for i in range(0,len(guess)): 
        try:
            tmin = optimize.newton(fun,guess[i]) #, disp = False)
        except RuntimeError:
            print('guess = ', guess[i],' failed to converge.')
        else: 
            break
    return tmin

tmin_X = calc_iter(fun_LC_a,guess)

Все переменные, которые здесь не определены, являются постоянными значениями.

Когда я запускаю этот скрипт, я получаю сообщение об ошибке "UnboundLocalError: локальная переменная 'Y_p', на которую ссылается перед присваиванием"

, и я не уверен, почему.

...