刚开始学Python,有一句看不懂。。。
巴扎黑
巴扎黑 2017-04-17 15:37:11
0
6
716
巴扎黑
巴扎黑

Antworte allen(6)
洪涛

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, f2, f3 = count()

表示对列表解包。等价于

f1, f2, f3 = [1, 2, 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。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage