Python. Why 2? Почему 2?
Eng: I can't figure out, why this code outputs 2. It needs to return 0 in the last loop, becouse 'a' or 'b' or both wiil be equal 0 and print 1. But it returns 2. If there will be '2 + sum(a-1, b-1)', it will return 4 and so on. Please help me solve this magic! Rus: Помогите понять эту магию. Вроде функция должна вызывать саму себя до тех пор, пока 'a' или 'b' не будет равно 0 или оба аргумента не будут равны нулю, тогда она вернёт 0. Но почему-то, когда она возвращает 0, она печатает не 1, а 2. Если вместо 1 прибавить 2, то распечатается 4. И так далее. Словно вместо нуля число прибавляет само себя. Никак не пойму, что тут происходит. Пробовал выводить значения переменных на разных этапах - не помогло, все равно вся магия заключается в строчке 'return 1 + sum(a-1, b-1)'. Буду благодарен за помощь! def sum(a,b): if a==0 or b==0: return 0 return 1 + sum(a-1, b-1) print sum(4,2)