a,b,c = [1,2,3] 你的count()函數回傳的是這種的吧[1,2,3],然後a=1,b=2,c=3了,這是簡化賦值
這個是python的多指返回,count()函數回傳的是一個函數的列表,列表的值有三個,分別是f(1), f(2), f(3),賦值給了對應的f1,f2,f3,然後print的時候執行了函數,得到的是1,4,9
count是上面那個函數f1, f2, f3 = count()是用三個變數接收函數傳回的陣列(直接接收陣列中的元素了)
count
f1, f2, f3 = count()
count()函數傳回fs這個列表,這個列表本身包含三個item。
表示對列表解包。等價於
f1, f2, f3 = [1, 2, 3]
即 ,f1 = 1, f2 = 2, f3 = 3
f1 = 1
f2 = 2
f3 = 3
原文的items是一些閉包函數。
@sorashiro 額,我也是新手一枚,看到這段程式碼,我也有一句看不懂的地方,求問: r = f(i) 這句程式碼,為什麼沒有執行f(j)函數呢? 我跟著程式碼腦裡走了一遍得到的答案是print:1,16,81 原因是我認為r = f(i)這句程式碼執行了f(j)函數,我在電腦裡運行了一遍發現自己是錯的,就不明白這裡這句話了:為什麼r = f(i)沒有執行f(j)函數呢?
先回答f1,f2,f3=count()是什麼意思。因為count()函數回傳的是一個列表,python允許你將列表賦給多個變量,只要列表長度跟變數數相等。 其次,來講為什麼是1,4,9。這與函數的閉包有關,簡單的講是內部函數有記憶功能,它記住外部函數給它的參數。 所以f1,f2,f3接收清單後並沒有馬上執行,等到f1(),f2(),f3()被呼叫後,它們都同時會去執行j*j。
a,b,c = [1,2,3] 你的count()函數回傳的是這種的吧[1,2,3],然後a=1,b=2,c=3了,這是簡化賦值
這個是python的多指返回,count()函數回傳的是一個函數的列表,列表的值有三個,分別是f(1), f(2), f(3),賦值給了對應的f1,f2,f3,然後print的時候執行了函數,得到的是1,4,9
count
是上面那個函數f1, f2, f3 = count()
是用三個變數接收函數傳回的陣列(直接接收陣列中的元素了)count()函數傳回fs這個列表,這個列表本身包含三個item。
表示對列表解包。等價於
即 ,
f1 = 1
,f2 = 2
,f3 = 3
原文的items是一些閉包函數。
@sorashiro
額,我也是新手一枚,看到這段程式碼,我也有一句看不懂的地方,求問:
r = f(i) 這句程式碼,為什麼沒有執行f(j)函數呢?
我跟著程式碼腦裡走了一遍得到的答案是print:1,16,81
原因是我認為r = f(i)這句程式碼執行了f(j)函數,我在電腦裡運行了一遍發現自己是錯的,就不明白這裡這句話了:為什麼r = f(i)沒有執行f(j)函數呢?
先回答f1,f2,f3=count()是什麼意思。因為count()函數回傳的是一個列表,python允許你將列表賦給多個變量,只要列表長度跟變數數相等。
其次,來講為什麼是1,4,9。這與函數的閉包有關,簡單的講是內部函數有記憶功能,它記住外部函數給它的參數。
所以f1,f2,f3接收清單後並沒有馬上執行,等到f1(),f2(),f3()被呼叫後,它們都同時會去執行j*j。