Возврат в рекурсивной функции

Я только начал изучать python (v3.2.3 )и столкнулся со странной проблемой, связанной с returnв этой функции:

def test(x):
    if x > 9 :
        test(x - 10)
    else:
        print('real value',x)
        return x

x = int(input())
y = test(x)
print('this should be real value',y)

Когда я запускаю его, я получаю:

45
real value 5
this should be real value None

Но я ожидал:

45
real value 5
this should be real value 5

Я попытался добавить return xвне ifи получил входное значение по умолчанию. Кто-нибудь может объяснить, как работает return?

38
задан Matt Fenwick 18 September 2012 в 20:21
поделиться