Ошибка «UnboundLocalError: локальная переменная« d », на которую ссылаются до назначения» в транспортной модели - PullRequest
0 голосов
/ 18 января 2020

Когда я запускаю свой код, появляется ошибка "UnboundLocalError: локальная переменная 'd', на которую ссылается перед присваиванием", но когда сценарий с Len (L) = 12 не появляется, между прочим, когда len (L) = 180 появляется ошибка, как я могу это исправить?

def objective(x):
    sum_obj = 0.0
    for i in range(len(L)): 
        if x[i] >= 0.276:
            d= 1.484
        elif 0.276 > x[i] >= 0.212:
            d= 1.299
        elif 0.212 > x[i] >= 0.148:
            d= 1.086
        elif 0.148 > x[i] >= 0.0975:
            d=0.881
        elif 0.0975 > x[i] >= 0.079:
            d = 0.793
        elif 0.079> x[i] >= 0.062:
            d = 0.705
        elif 0.062 > x[i] >= 0.049:
            d= 0.626
        elif 0.049 > x[i] >= 0.038:
            d= 0.555
        elif 0.038 > x[i] >= 0.030:
            d=0.494
        elif 0.030 > x[i] >= 0.024:
            d=0.441
        elif 0.024 > x[i] >= 0.0198:
            d= 0.397
        elif 0.0198 > x[i] >= 0.01565:
            d= 0.353
        elif 0.01565 > x[i] >= 0.0123:
            d= 0.313
        elif 0.0123 > x[i] >=0.0097:
            d= 0.278
        elif 0.0097 > x[i] >= 0.0077:
            d=0.247
        elif 0.0077 > x[i] >= 0.0061:
            d=0.22
        elif 0.0061 > x[i] >= 0.0049:
            d=0.198
        elif 0.0049 > x[i] >= 0.00389:
            d=0.176
        elif 0.00389 > x[i] >= 0.0032:
            d= 0.159
        elif 0.0032 > x[i] >= 0.0025 :
            d= 0.141
        elif 0.0025 > x[i] >= 0:
            d= 0.123
        K[i] = 10.674*L[i]/(C**1.852*d**4.871)
        N[i] = K[i]*x[i]**2.852*J+x[i]*J*h[i]
        sum_obj = sum_obj + N[i]
    return sum_obj

UnboundLocalError: локальная переменная 'd', на которую ссылается перед присваиванием

...