просто сделайте отступ в своем коде правильно:
def determine_period(universe_array):
period=0
tmp=universe_array
while True:
tmp=apply_rules(tmp)#aplly_rules is a another function
period+=1
if numpy.array_equal(tmp,universe_array) is True:
return period
if period>12: #i wrote this line to stop it..but seems its doesnt work....help..
return 0
else:
return period
Вы должны понимать, что оператор break
в вашем примере выйдет из бесконечного цикла, который вы создали с помощью while True
. Поэтому, когда условие прерывания равно True, программа выйдет из бесконечного цикла и перейдет к следующему кадру с отступом. Поскольку в вашем коде нет следующего блока, функция завершается и ничего не возвращает. Итак, я исправил ваш код, заменив оператор break
на оператор return
.
Следуя вашей идее использовать бесконечный цикл, это лучший способ написать это:
def determine_period(universe_array):
period=0
tmp=universe_array
while True:
tmp=apply_rules(tmp)#aplly_rules is a another function
period+=1
if numpy.array_equal(tmp,universe_array) is True:
break
if period>12: #i wrote this line to stop it..but seems its doesnt work....help..
period = 0
break
return period