為什么我的遞歸python函數不返回?我有一個叫做自己的函數:def get_input():
my_var = input('Enter "a" or "b": ')
if my_var != "a" and my_var != "b":
print('You didn\'t type "a" or "b". Try again.')
get_input()
else:
return my_varprint('got input:', get_input())現在,如果我只輸入“a”或“b”,一切正常:Type "a" or "b": a
got input: a但是,如果我鍵入其他內容,然后再輸入“a”或“b”,我就會得到以下內容:Type "a" or "b": purple
You didn't type "a" or "b". Try again.
Type "a" or "b": a
got input: None我也不知道原因get_input()正在回歸None,因為它只應該返回my_var。這個在哪里?None我是從哪里來的,我該如何修復我的功能?
4 回答

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
None
if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') get_input()
None
>>> def f(x):... pass>>> print(f(20))None
get_input()
if
return
if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') return get_input()

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
def get_input(): my_var = input('Enter "a" or "b": ') if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') return get_input() else: return my_varprint('got input:', get_input())

波斯汪
TA貢獻1811條經驗 獲得超4個贊
if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') get_input()
get_input
else: return my_var
print('got input:', get_input())
while my_var!="a" and my_var!="b": print('You didn\'t type "a" or "b". Try again.') return get_input()
添加回答
舉報
0/150
提交
取消