課程
/后端開發
/Python
/初識Python
這個代碼的運行順序是什么
2016-12-05
源自:初識Python 7-5
正在回答
可以畫個邏輯圖
xiong_betty123
1.def move(n, a, b, c):2. ? if n ==1:3.? ? ?? print a, '-->', c4.? ? ?? return5. ? move(n-1, a, c, b)6. ? print a, '-->', c7. ? move(n-1, b, a, c)8.move(4, 'A', 'B', 'C')
執行的順序其實就是從上到下按序執行的,第8行代碼入口,調用方法,到第1行去,傳入參數n=4和ABC(注意順序),先進行判斷,不符合條件,然后到達下一個move方法,這是參數n = 3和ACB,又一次的回到第一行代碼,繼續判斷,每次執行方法時的四個參數都會變化,這里要注意每次return回來的時候,參數是上一層的參數。
其實將n設置為2或者3,在第一行和第二行之間添加print n的話,更加容易理順思路,我也是困在這里一陣子才想明白的,遞歸主要是在做循環,主要是找到每個循環中的步驟,其他的交給程序自己來弄就好了,
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-12
2016-12-05
1.def move(n, a, b, c):
2. ? if n ==1:
3.? ? ?? print a, '-->', c
4.? ? ?? return
5. ? move(n-1, a, c, b)
6. ? print a, '-->', c
7. ? move(n-1, b, a, c)
8.move(4, 'A', 'B', 'C')
執行的順序其實就是從上到下按序執行的,第8行代碼入口,調用方法,到第1行去,傳入參數n=4和ABC(注意順序),先進行判斷,不符合條件,然后到達下一個move方法,這是參數n = 3和ACB,又一次的回到第一行代碼,繼續判斷,每次執行方法時的四個參數都會變化,這里要注意每次return回來的時候,參數是上一層的參數。
其實將n設置為2或者3,在第一行和第二行之間添加print n的話,更加容易理順思路,我也是困在這里一陣子才想明白的,遞歸主要是在做循環,主要是找到每個循環中的步驟,其他的交給程序自己來弄就好了,