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

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

這個代碼是什么意思啊

def?count():
????fs?=?[]
????for?i?in?range(1,?4):
????????def?f(i?=?i):
????????????return?i?*?i
????????fs.append(f)
????return?fsf1,?f2,?f3?=?count()print?f1(),?f2(),?f3()

就是那個def f(i = i)沒有懂它的含義

正在回答

2 回答

我的理解是這樣子的。

def f(i = i) 中第一個i是形式參數,第二個i是取值(1,4)的值。很繞啊,為了方便理解,也可以這樣寫:

def?f(x?=?i)
????return?x*x

在這里每一次循環,分別相當于x=1, x=2, x=3(值引用)。

好了,樓主的問題就回答完了。

?我想強調的是,f(x=i) 在運算過程中定義了新的變量x,每次計算返回f(x)=x*x,當打印f1, f2, f3時分別帶入

1,2,3得到1,4,9. 這里往往容易錯誤的把f(i=i)寫成f(),得到的f1,f2,f3,打印結果的時候,循環變量i已經變成3,最終只能得到結果9,9,9.



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

遲遲清夢 提問者

嗷!謝謝謝謝,我懂了?。。。?!
2019-12-29 回復 有任何疑惑可以回復我~

我是了一下,和 (i=i) 沒啥關系
和append(f())? ?少了里面的括號有關吧

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

舉報

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

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

進入課程

這個代碼是什么意思啊

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

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

幫助反饋 APP下載

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

公眾號

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