84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
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。