В выделенном фрагменте кода if должен отнять число и добавить с список. Но он добавил отрицательное число

B выводит AttributeError: 'float' object has no attribute 'append'. В чем проблема? (Это часть кода)

for q in sign_stage:
        n1 = q[0]
        n2 = q[1]
        n3 = q[2]
        for w in list_0_copy:   # 0_+    1_-    2_*    3_/
            if n1 == 0:     #n1
                w1 = w[0] + w[1]
            elif n1 == 1:
                w1 = w[0] - w[1]
            elif n1 == 2:
                w1 = w[0] * w[1]
            elif n1 == 3:
                w1 = w[0] / w[1]
            if n2 == 0:     #n2
                w2 = w1 + w[2]
            elif n2 == 1:
                w2 = w1 - w[2]
            elif n2 == 2:
                w2 = w1 * w[2]
            elif n2 == 3:
                w2 = w1 / w[2]
            if n3 == 0:     #3
                w3 = w2 + w[3]
            elif n3 == 1:
                w3 = w2 - w[3]
            elif n3 == 2:
                w3 = w2 * w[3]
            elif n3 == 3:
                w3 = w2 / w[3]
            evaluation_0.append( w3 )
        for s in list_1_copy:   # 0_+    1_-    2_*    3_/
            if n1 == 0:     #n1
                s1 = s[0] + s[1]
            elif n1 == 1:
                s1 = s[0] - s[1]
            elif n1 == 2:
                s1 = s[0] * s[1]
            elif n1 == 3:
                s1 = s[0] / s[1]
            if n2 == 0:     #n2
                s2 = s1 + s[2]
            elif n2 == 1:
                s2 = s1 - s[2]
            elif n2 == 2:
                s2 = s1 * s[2]
            elif n2 == 3:
                s2 = s1 / s[2]
            if n3 == 0:     #3
                s3 = s2 + s[3]
            elif n3 == 1:
                s3 = s2 - s[3]
            elif n3 == 2:
                s3 = s2 * s[3]
            elif n3 == 3:
                s3 = s2 / s[3]
            evaluation_1.append( s3 )
        evaluation_0_middle = sum( evaluation_0 ) / len( evaluation_0 )
        evaluation_1_middle = sum( evaluation_1 ) / len( evaluation_1 )
        print(evaluation_0_middle)
        print(evaluation_1_middle)
        if evaluation_0_middle > evaluation_1_middle:       # 0 > 1
            for t in evaluation_0:      #Погрешность для 0
                *if t < evaluation_0_middle:
                    print(t)
                    print(evaluation_0_middle)
                    fault_0.append( evaluation_0_middle - t )*
            for p in evaluation_1:      #Погрешность для 1
                if p > evaluation_1_middle:
                    print(p)
                    fault_1.append( p - evaluation_1_middle )
        elif evaluation_0_middle < evaluation_1_middle:     # 0 < 1
            for m in evaluation_0:      #Погрешность для 0
                if m > evaluation_0_middle:
                    print(m)
                    fault_0.append( m - evaluation_0_middle )
            for f in evaluation_1:      #Погрешность для 1
                if f < evaluation_1_middle:
                    print(f)
                    fault_1.append( evaluation_1_middle - f )
        evaluation_0 = []
        evaluation_1 = []
        fault_0 = sum( fault_0) / len(fault_0)
        fault_1 = sum( fault_1) / len(fault_1)
        fault_union = fault_0 + fault_1
        fault_union = abs( evaluation_0_middle - evaluation_1_middle ) / fault_union
        print(fault_union)

Ответы (1 шт):

Автор решения: Недокодер

Тип данных float не имеет функции append, так как append добавляет елемент в конец списка
Если глянуть на код то вероятнее всего ошибка происходит тут evaluation_0.append( w3 )
либо поменяйте тип переменной evaluation_0 на список, либо удалите все возможные манипуляции с ним как с списком.

→ Ссылка