函數中少了return語句為什么就會報錯
def move(n,a,b,c)
????if n==1
????????print a,'-->',c
????move(n-1,a,c,b)
????print a,'-->',c
????move(n-1,b,a,c)
def move(n,a,b,c)
????if n==1
????????print a,'-->',c
????move(n-1,a,c,b)
????print a,'-->',c
????move(n-1,b,a,c)
2016-04-28
舉報
2016-04-29
正確代碼是這樣的, 如果 函數中的 if 語句內部沒有 return 的話, 遞歸就會無限的執行下去,這時候就會報錯.
return 在函數中 有返回值 及 中斷函數執行的效果, 在這個遞歸調用中, 就是 遞減到 n=1 的時候 就終止遞歸調用了。
另外 題主的代碼,怎么都沒有冒號(def 行, 及 if 行?)
2017-06-08
你這代碼又少冒號又有utf-8字符.
def move(n,a,b,c):
? ? if n==1:
? ? ? ? print a,'-->',c
? ? else:
? ? ? ? move(n-1,a,c,b)
? ? ? ? print a,'-->',c
? ? ? ? move(n-1,b,a,c)
move(2, 'A', 'B', 'C')
這個沒有return用else了,可運行
2016-05-07
函數里運行到return就會終止當前函數并返回一個值,如果沒有return,在這個函數里n就會無限的-1,所以就報錯了
2016-04-28
你這是遞歸吧,遞歸怎么能沒返回值呢