Он возвращает None
, потому что, когда вы рекурсивно называете это:
if my_var != "a" and my_var != "b":
print "You didn't type \"a\" or \"b\". Try again."
print " "
Dat_Function()
.. вы не возвращаете значение.
Итак, во время рекурсии возвращаемое значение отбрасывается, а затем вы отваливаетесь от конца функции. Падение конца функции означает, что python неявно возвращает None
, как это:
>>> def f(x):
... pass
>>> print(f(20))
None
Итак, вместо того, чтобы просто вызывать Dat Function()
в вашем if
, вам нужно return
это.