与标准答案差2行,错的原因什么?
def count():
fs = []
for i in range(1, 4):
def f(j): #函数中为什么要再定义一新的函数
return j * j
r = f(i)
fs.append(r)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
def count():
fs = []
for i in range(1, 4):
def f(j): #函数中为什么要再定义一新的函数
return j * j
r = f(i)
fs.append(r)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
2018-08-01
def count(): fs = [] for i in range(1, 4): def f(j=i): #定义新的函数f,需要将函数外的变量赋值给f的参数j return j * j #r=f(i)这里定义的r是一个int值,fs.append(r)会报错int对象不能被调用,这里我也不太清楚 fs.append(f) return fs f1, f2, f3 = count() #这里f1, f2, f3就是指向了定义的新函数f print f1(), f2(), f3() #这里调用了三次f,每调用一次f就是循环里i加一次 #如果加多一个f4,报错,因为range(1,4)只有三次循环
举报