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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
self.name 有一个参数,setattr有两个参数
map()----返回一个List列表,接收单个参数map(f(*),List)列表每个参数运用函数

reduce()---返回一个List列表,接收两个参数reduce(f(*,*),List)列表每个参数累加或累剩

filter()---返回一个筛选之后List,接收单个参数filter(f(*),List)

sorted()---自然排序返回List列表,可以接收多个参数,sorted(List,cmp,key)
讲解得很详细,谢谢老师
def cmp_ignore_case(s1, s2):
if ord(s1.lower()[0]) > ord(s2.lower()[0]):
return 1
else:
return -1

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
python3中print (sorted([1, 3, 9, 5, 0],reverse=True))
python3要这样实现
print (list(sorted(['bob', 'about', 'Zoo', 'Credit'], key = lambda x:x[0].upper())))
L = []
for i in range(1,num + 1):
if(len(L) == 0):
L.append(0)
elif(len(L) == 1):
L.append(1)
else:
L.append(L[len(L) -1] + L[len(L) -2])
self.nums = L
********code*********
def calc_prod(lst):
def ss():
return x*y
print reduce(ss,lst)

return ss

f = calc_prod([1, 2, 3, 4])
print f()


reduce()函数
from functools import reduce
#3.x中reduce方法归到了functools包中,先要引入。
因为没有引入reduce函数,所以先定义reduce函数,然后再返回该函数
import math

def is_sqr(x):

return math.sqrt(x)%1==0

print filter(is_sqr, range(1, 101))
def calc_prod(lst):

def lazy_prod():
s = 1
for i in lst:
s = s * i
return s
return lazy_prod

f = calc_prod([1, 2, 3, 4])
print f()
class Person(object):

__count = 0

def __init__(self, name):
self.name=name
Person.__count+=1
print Person.__count

p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print 'attributeError'
更返回函数差不多,要避免里层函数的循环,通过多层返回,让变量不循环,ok,要区分f与f()
使用函数是前面加一点,后面加一空括号
import math
def is_sqr(x):
a = math.sqrt(x)
b = int(a)
if a-b==0.0:
return x
print filter(is_sqr, range(1,101))
我想问一下,我静音能学吗。特殊情况下 没法带耳机听声音
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消