亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥這個只輸出a-->b

def move(n, a, b, c):

? ? if n == 1:

? ? ? ? print a,'-->',c

? ? ? ? return none

? ? else:

? ? ? ? move(n-1,a,c,b)

? ? ? ? move(1,a,b,c)

? ? ? ? move(n-1,b,a,c)

move(4, 'a', 'b', 'c')


正在回答

3 回答

去掉return none,一旦執行rerurn,程序立馬停止。
因為無論如何遞歸,最底層的函數必定最先輸出n==1時的情況,之后就return了,停止運行。

0 回復 有任何疑惑可以回復我~
#1

MortChavez 提問者

非常感謝!
2016-08-02 回復 有任何疑惑可以回復我~

個人感覺,因為n=4,開始else遞歸,賦值之后a=a b=c c=b 然后n==1的時候a-->c的時候就輸出a-->b了 然后return,函數結束

0 回復 有任何疑惑可以回復我~

n=4時直接運行else else else 三次后n=1,這時候形參a,c,b對應實參a,b,c 所以輸出a-->b一次后 returne none 結束了。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758397    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為啥這個只輸出a-->b

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號