Функция вызывает неправильные значения - PullRequest
2 голосов
/ 21 февраля 2012

Вот моя функция, важная строка, где я снова вызываю f ().

def f(num,xyz,possible,temp):
    y = num%9
    x = num-y
    print num
    for xyz[num] in possible[num]:
        if ispossibility(temp,xyz[num],x,y) == True:
            temp[num] = xyz[num]
            if num != 80:
                f(num+1,xyz,possible,temp) # i call f() with num incremented
            else:
                print 'yes'
                exit()

Вывод программы

0
1
2
3
4
5
6
7
8
3
2
3
3

Проблема в том, что всякий раз, когда вызывается функция f (), переменная num всегда должна увеличиваться на 1. Но из выходных данных f () вызывается с num, равным 3, когда раньше было восемь. И поэтому мне интересно, как это возможно (вывод должен быть 9 между прочим, а не 3), когда f () всегда вызывается w / num с шагом 1. Я смотрел на эту функцию в течение некоторого времени, и я действительно не понимаю, что происходит.

1 Ответ

4 голосов
/ 21 февраля 2012

Вы вызываете f(num+1, ...) внутри цикла, поэтому можно вызывать f() с одним и тем же значением для num несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...