這可能是一個容易回答的問題,但我無法得到這個簡單的程序工作,這讓我發瘋。我有這樣一段代碼:爲什麼我的函數返回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