为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰

已采纳回答 / 慕慕8545101
因为这里只是需要传入一个函数就行了,当upper加了括号就变成了函数的调用。
sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y

最赞回答 / suarezxyw96
第一个代码段中,fs.append(f)中这个f是f函数的名称,该名称指向的是f函数的内存地址。你可以打印f1, f2和f3,你会发现打印出来的都是函数的地址,所以当调用f1的时候其实是调用了f函数,但此时f函数中的i已经变成了3。在第二个代码段中,fs这个list中添加的是f(1),f(2)和f(3)。所以结果为1,4,9

最新回答 / 慕神7650425
__dict__是特殊属性,储存实例的属性和值,update是方法,kw是dict字典,我也不是特别懂,看得多了,觉得挺好用,比for循环,记下来就好
def num(q):
n=[]
def x(q):
q=q+1
for i in range(1,q):
n.append(i*i)
str_convert = ' '.join(list(map(str,n)))
return str_convert
return x(q)
print num(3)
def cmp_ignore_case(s1, s2):
if s1[0].upper() < s2[0].upper():
return -1
if s1[0].upper() > s2[0].upper():
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
import math

def is_sqr(x):
return math.sqrt(x) - int(math.sqrt(x)) == 0


print filter(is_sqr,list(range(1, 101)))
class Person(object):
pass
p1 = Person()
p1.name = 'Bart'

p2 = Person()
p2.name = 'Adam'

p3 = Person()
p3.name = 'Lisa'
L1 = [p1,p2,p3]
L2 = [];

for i in L1:
L2.append(i.name)
L3 = sorted(L2)
print(L3)
表示lambda函数不太理解

最赞回答 / 小胖脸码农
看到你的代码中 fs.append(f()) 存入的是函数调用的结果,按题目的原意的是将函数变量存入列表中,即为 fs.append(f) f1, f2,f3 = count()相当于 [f1,f2,f3] = [f, f, f]然而每个f() 返回的是 i*i,for循环中会导致i变量会递增,最终<...图片...>i 都会递增到3,所以需要将变量绑定到一个过渡的值

最新回答 / 慕容9253047
当内部函数fn执行到return r时,表示fn已经执行完毕,其内部定义的t1,t2以及r都是局部变量,一旦执行完fn,这些变量对外部无效,print内容放后面,会提示t1,t2未定义

最新回答 / barry_lu
i只是一个变量 定义成什么 是自己任意的 只是一个名字而已;当调用  r = f(i) 时,实际的 i 也就 变成了 函数类的 j ;所以 函数定义的 参数名 不影响 函数实际的 接收参数, 也就是 函数的 实参和形参
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消