这可能是一个容易回答的问题,但我无法得到这个简单的程序工作,这让我发疯。我有这样一段代码:为什么我的函数返回None?
def Dat_Function():
my_var = raw_input("Type \"a\" or \"b\": ")
if my_var != "a" and my_var != "b":
print "You didn't type \"a\" or \"b\". Try again."
print " "
Dat_Function()
else:
print my_var, "-from Dat_Function"
return my_var
def main():
print Dat_Function(), "-From main()"
main()
现在,如果我只是输入“A”或“B”,一切都很好。输出是:
Type "a" or "b": a
a -from Dat_Function
a -From main()
但是,如果我输入别的东西,然后“一”或“b”,我得到这个:
Type "a" or "b": purple
You didn't type "a" or "b". Try again.
Type "a" or "b": a
a -from Dat_Function
None -From main()
我不知道为什么Dat_Function()
正在恢复None
,因为它应该只返回my_var
。打印语句显示my_var
是正确的值,但该函数由于某种原因未返回该值。
递归调用时需要'返回Dat_Function()'。 –
只是提示:'my_var!=“a”和my_var!=“b”'条件的惯用方式是'my_var不在('a','b')' – gonz