为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 大些首字母,小写其他字母:s[0].upper() + s[1:].lower() 或者:s.capitalize()
    查看全部
  • 比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
    查看全部
  • class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def gcd(a,b): if a%b==0: return b else: return gcd(a,a%b) def __sub__(self, r): tmp=self.gcd((self.p*r.q-r.p*self.q),(self.q*r.q)) return Rational((self.p*r.q-r.p*self.q)/tmp,(self.q*r.q)/tmp) def __mul__(self, r): return Rational(self.p*r.p,self.q*r.q) def __div__(self, r): return Rational(self.p*r.q,self.q*r.p) def __str__(self): return '%s/%s'%(self.p,self.q) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2 print r1 - r2 print r1 * r2 print r1 / r2
    查看全部
  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 要点: 1、f1,f2,f3=[ 值1,值2 ,值3 ],即f1=值1,f2=值2,f3=值3 2、fs=[f,f,f],f是函数,3个f共用一个i,因此3个值相同,而fs=[f(),f(),f()]则不一样,它们的值取决于fs.append(f())时i的值。 总结:“返回函数不要引用任何循环变量,或者后续会发生变化的变量。”
    查看全部
    0 采集 收起 来源:python中闭包

    2017-09-12

  • import time def performance(unit): def performance_decorator(f): def wrapper(*args,**kw): t_start=time.time() r=f(*args,**kw) t_end=time.time() print 'call %s cost %s %s'%(f.__name__,(t_end-t_start)*1000,unit) return r return wrapper return performance_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • Python匿名函数 Lambda表达式作用: 可以让我们在单行内创建一个最小的函数 #-*- coding:utf-8 -*- # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a+b+c print f(1,2,3) # 返回结果为6 注意,f = lambda a,b,c:a+b+c 中的关键字lambda表示匿名函数, # 冒号:之前的a,b,c表示它们是这个函数的参数。 # 匿名函数不需要return来返回值,表达式本身结果就是返回值。 lambda是一个表达式,而并非语句
    查看全部
  • def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g >>> x = f() # 调用f() call f()... >>> x # 变量x是f()返回的函数: <function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用 call g()... # 调用x()就是执行g()函数定义的代码 注意区分返回函数和返回值: def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值 返回函数可以把一些计算延迟执行。
    查看全部
  • import os os.path.isdir(r'c:')能返回true.但print打印不出。
    查看全部
  • 成功了,让编程来的更猛烈些吧
    查看全部
  • sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序: >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5]
    查看全部
  • filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符 s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符 注意: 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ') 去掉 文本中句子开头与结尾的符号的。因为在文本中每行开头都有个"/n",代表换行。(印象中是这样的) 一般是 for line in file: line.strip().split() 这样就把每行的每个字符一个个分开,变成一个list。
    查看全部
  • print 'call'+f.__name__+'() in ' +time.strftime('%Y-%m-%d',time.localtime(time.time()))
    查看全部
  • reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: reduce(f, [1, 3, 5, 7, 9], 100) 结果将变为125,因为第一轮计算是: 计算初始值和第一个元素:f(100, 1),结果为101。
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

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