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

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

為什么在這段代碼中i的賦值為3呢

def count(): ? ?fs = [] ? ?for i in range(1, 4): ? ? ? ?def f(): ? ? ? ? ? ? return i*i ? ? ? ?fs.append(f) ? ?return fs f1, f2, f3 = count() 為什么在使用這段代碼求f1(),f2(),f3()時,i的賦值為3呢?

正在回答

2 回答

返回的fs這個list里面的是三個函數f1 f2 f3 而這三個函數都是f()=i*i,而for循環結束后,i==3,所以你輸出的都是f1(3)、f2(3)、f3(3)

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

以下是我個人的理解

在執行這句代碼時:f1, f2, f3 = count()

這個時候進行for循環(range(1,4)產生[1,2,3]),循環結束后i=3,且返回了三個f函數,但沒有調用f函數,此時并不進行return i*i這個計算,當執行這句代碼時:print f1(), f2(), f3(),i已經是3了



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

郭B

你好 我想問問 我在return前加入print fs的語句 為什么打印出來的是空列表呢 按道理來說不是已經執行了append()函數了嗎
2020-04-19 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

為什么在這段代碼中i的賦值為3呢

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

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

幫助反饋 APP下載

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

公眾號

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