課程
/后端開發
/Python
/python進階
只看了答案第一段的提示之后,我知道了問題所在是函數錯調用了定義外的變量,然后我試著寫了圖中的代碼,運行成功,再看答案就懵了,咋肥事啊,他比我多定義了一個g(),和我這個哪個是正確的,區別在哪
2018-11-01
源自:python進階 2-9
正在回答
兩端代碼其實是一樣的。因為你在定義第二個函數def f(j=i)的時候引用了另外一個變量j,此時數組中的引用變量指向的也不是i,而是j所指向的內容。但是這里又因為外面套了一個for循環,所以,可以看做循環一次,調用一個變量j。如果你理解堆和棧,那就更容易理解了??傊?,你可以理解成你的這個代碼是答案的簡寫版。
代碼有點冗余,可以使用ifelse簡化下,加溫。前臺就可以直接下載,用canvas得到dataurl
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-11-01
兩端代碼其實是一樣的。因為你在定義第二個函數def f(j=i)的時候引用了另外一個變量j,此時數組中的引用變量指向的也不是i,而是j所指向的內容。但是這里又因為外面套了一個for循環,所以,可以看做循環一次,調用一個變量j。如果你理解堆和棧,那就更容易理解了??傊?,你可以理解成你的這個代碼是答案的簡寫版。
2022-03-26
代碼有點冗余,可以使用ifelse簡化下,加溫。前臺就可以直接下載,用canvas得到dataurl