Проблемы с отступами в python

Запуск следующего кода получает

обнаружена противоречивая неопределенность.

Я не могу понять причину. Есть идеи?

[Это просто для размещения вопроса, потому что он требует более подробной информации.]

class FSM():
    def sel(self):
        self.big=[]
        self.small=[]
        for i in cpop:
            if i.eve>goal:
                self.big.append(i)
            elif i.eve<goal:
                self.small.append(i)
            else:
                print('goal')
                break
    def cross(self):
        self.s1 = randint(0,len(self.big))#nradn
        self.s2 = randint(0,len(self.small))
        self.p1 = self.big[s1]
        self.p2 = self.small[s2]
        self.ch1=self.p1[0,2]+self.p2[2,len(p2)]
        self.ch2=self.p2[0,2]+self.p1[2,len(p1)]
        self.chs.append(ch1)
        self.chs.append(ch2)
    def npop(self):
        self.npop=[]
        self.F={}
        for i in range(0,len(self.chs)):
            self.F[i]= Per(self.chs[i], none)
            self.npop.append(F[i])
        self.F={}
        n+=1
    def cpop(self):
                if n==0:
                        x=Per()
                        z=Per()
                        k=Per()
                        self.cpop=[x,z,k]
                else:
                        self.cpop=self.npop

2 ответа

Вы должны сделать отступ со второй строки, где вы описываете FSM учебный класс

От:

class FSM():
def sel(self):
...

в

class FSM():
  def sel(self):
  ...

Кроме того, убедитесь, что у вас нет сочетания табуляции и пробелов.

Так как у вас есть

def npop(self):
    self.npop=[]
    self.F={}
    for i in range(0,len(self.chs)):
        self.F[i]= Per(self.chs[i], none)
        self.npop.append(F[i])
    self.F={}
    n+=1
def cpop(self):
            if n==0:
                    x=Per()
                    z=Per()
                    k=Per()
                    self.cpop=[x,z,k]
            else:
                    self.cpop=self.npop

похоже это дело в cpop метод.

Просто попробуйте этот отступ:

class FSM():
    def sel(self):
        self.big=[]
        self.small=[]
        for i in cpop:
            if i.eve>goal:
                self.big.append(i)
            elif i.eve<goal:
                self.small.append(i)
            else:
                print('goal')
                break

    def cross(self):
        self.s1 = randint(0,len(self.big))#nradn
        self.s2 = randint(0,len(self.small))
        self.p1 = self.big[s1]
        self.p2 = self.small[s2]
        self.ch1=self.p1[0,2]+self.p2[2,len(p2)]
        self.ch2=self.p2[0,2]+self.p1[2,len(p1)]
        self.chs.append(ch1)
        self.chs.append(ch2)

    def npop(self):
        self.npop=[]
        self.F={}
        for i in range(0,len(self.chs)):
            self.F[i]= Per(self.chs[i], none)
            self.npop.append(F[i])
        self.F={}
        n+=1

    def cpop(self):
        if n==0:
            x=Per()
            z=Per()
            k=Per()
            self.cpop=[x,z,k]
        else:
            self.cpop=self.npop
Другие вопросы по тегам