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

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

return如何放置?

http://img1.sycdn.imooc.com//57e7b231000169f102910293.jpg

return后面要接函數調用表達式

但是函數調用表達式是什么鬼?

為什么這里只是return放的地方不同,出來的答案變成三個圓盤的步驟,我很懵,可以解釋一下嗎?

正在回答

4 回答

你這是遞歸思想還沒有形成,主要問題不在于return,函數體中遇到return函數就結束了,之所以調用很多次是因為遞歸的原因,return的位置取決于你想讓它在函數體中什么情況下結束。

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

不知道弄清楚了沒. 我也糊涂了.

測試了一下, 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不影響輸出結果.



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

你可以看看

http://img1.sycdn.imooc.com//57e9ba400001d60807110493.jpg

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

慕瓜2653862 提問者

但是return不是會把后面的函數被表達式的值表達出來嗎,為什么還要print
2016-09-27 回復 有任何疑惑可以回復我~
#2

知而學 回復 慕瓜2653862 提問者

簡而言之,你定義的函數,你理解n=2時為什么沒有結果,就該差不多了。想想return結束函數并返回值給與之對應的函數這句話。
2016-10-07 回復 有任何疑惑可以回復我~

return a,'-->',c

這句話單獨運行,你會發現不會打印任何數據http://img1.sycdn.imooc.com//57e7befb0001f4ec06010622.jpg

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

慕瓜2653862 提問者

這是為什么是因為這不是函數嗎?
2016-09-26 回復 有任何疑惑可以回復我~
#2

大熊93

def move(n,a,b,c): if n==1: return a,'-->',b a=move(1,'A','B','C') print a 函數是有返回值的,只是你沒有打印出來
2016-09-27 回復 有任何疑惑可以回復我~
#3

慕瓜2653862 提問者 回復 大熊93

我剛剛試過一次,不加print還是會有數據出來的但是會是tuple,('A','-->','B'),而且你這種print的方式,出來的也是上面的答案,不會出來A-->B.
2016-09-27 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

return如何放置?

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

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

幫助反饋 APP下載

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

公眾號

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