課程
/后端開發
/Python
/初識Python
return后面要接函數調用表達式
但是函數調用表達式是什么鬼?
為什么這里只是return放的地方不同,出來的答案變成三個圓盤的步驟,我很懵,可以解釋一下嗎?
2016-09-25
源自:初識Python 7-5
正在回答
你這是遞歸思想還沒有形成,主要問題不在于return,函數體中遇到return函數就結束了,之所以調用很多次是因為遞歸的原因,return的位置取決于你想讓它在函數體中什么情況下結束。
不知道弄清楚了沒. 我也糊涂了.
測試了一下, return后有沒有都不會有輸出. n=1就跳過了,這里沒懂...不過測試結果如此.
所以N只會有N-1的輸出,就是n-1那兩個之間的print.
測試方法:
def move(n,a,b,c):
? ? if n==1:
? ? ? ? return
? ? move(n-1,a,c,b)
? ? print a,'-->',c
? ? move(n-1,b,a,c)
move(4, 'A', 'B', 'C')
將a->c放在不同位置看輸出.
print去掉,就沒有輸出. 而return后面加ac不影響輸出結果.
你可以看看
慕瓜2653862 提問者
知而學 回復 慕瓜2653862 提問者
return a,'-->',c
這句話單獨運行,你會發現不會打印任何數據
大熊93
慕瓜2653862 提問者 回復 大熊93
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-25
你這是遞歸思想還沒有形成,主要問題不在于return,函數體中遇到return函數就結束了,之所以調用很多次是因為遞歸的原因,return的位置取決于你想讓它在函數體中什么情況下結束。
2017-06-08
不知道弄清楚了沒. 我也糊涂了.
測試了一下, return后有沒有都不會有輸出. n=1就跳過了,這里沒懂...不過測試結果如此.
所以N只會有N-1的輸出,就是n-1那兩個之間的print.
測試方法:
def move(n,a,b,c):
? ? if n==1:
? ? ? ? return
? ? move(n-1,a,c,b)
? ? print a,'-->',c
? ? move(n-1,b,a,c)
move(4, 'A', 'B', 'C')
將a->c放在不同位置看輸出.
print去掉,就沒有輸出. 而return后面加ac不影響輸出結果.
2016-09-27
你可以看看
2016-09-25
return a,'-->',c
這句話單獨運行,你會發現不會打印任何數據