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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 任务

                   

    返回闭包不能引用循环变量,请改写count()函数,让它正确返回能计算1x1、2x2、3x3的函数。

                   

    • ?不会了怎么办

    • 考察下面的函数 f:

      def f(j):
          def g():
              return j*j
          return g

      它可以正确地返回一个闭包g,g所引用的变量j不是循环变量,因此将正常执行。

      在count函数的循环内部,如果借助f函数,就可以避免引用循环变量i。

      参考代码:

      def count():
          fs = []
          for i in range(1, 4):
              def f(j):
                  def g():
                      return j*j
                  return g
              r = f(i)
              fs.append(r)
          return fs
      f1, f2, f3 = count()
      print f1(), f2(), f3()


    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-09

  • 任务

                   

    请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

                   

    • ?不会了怎么办

    • filter() 接收的函数必须判断出一个数的平方根是否是整数,而 math.sqrt()返回结果是浮点数。

      参考代码:

      import math
      def is_sqr(x):
          r = int(math.sqrt(x))
          return r*r==x
      print filter(is_sqr, range(1, 101))


    查看全部
  • 任务

                   

    假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:

    输入:['adam', 'LISA', 'barT']
    输出:['Adam', 'Lisa', 'Bart']

                   

    • ?不会了怎么办

    • format_name(s)函数接收一个字符串,并且要返回格式化后的字符串,利用map()函数,就可以输出新的list。

      参考代码:

      def format_name(s):
          return s[0].upper() + s[1:].lower()
      print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • python中类型转换

    如果要把 Rational 转为 int,应该使用:

    r = Rational(12, 5)
    n = int(r)
    要让int()函数正常工作,只需要实现特殊方法__int__():
    class Rational(object):
        def __init__(self, p, q):
            self.p = p
            self.q = q
        def __int__(self):
            return self.p // self.q
            同理,要让float()函数正常工作,只需要实现特殊方法__float__()。


    查看全部
  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码。 返回函数的时候,也可以返回匿名函数: >>> myabs = lambda x: -x if x < 0 else x
    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量。如果非要使用,就得再套一层函数,让
    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-08

  • 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保返回的那个函数引用的局部变量在其返回后不能改变。否则就得不到想要的结果。
    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-08

  • 不是很理解

    查看全部
  •  1.sorted()函数可对list进行排序

    2.如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0

    查看全部
  •  math.sqrt()返回结果是浮点数


     r = int(math.sqrt(x))
        return r*r==x


    查看全部
  • filter()函数接收一个函数 f 和一个list

    对每个元素进行判断,返回 True或 False,

    filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。


    s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符,当rm为空时,默认删除空白符.



    查看全部
    1. reduce()传入的函数 f 必须接收两个参数

    2. reduce()对list的每个元素反复调用函数f,并返回最终结果值。

    3. reduce()还可以接收第3个可选参数,作为计算的初始值 reduce(f, [1, 3, 5, 7, 9], 100)


    查看全部
  • s[].lower 小写

    s[].upper 大写

    查看全部
  •  math.sqrt是求平方根的函数

    查看全部
  • abs 是计算绝对值的函数

    而sqrt是计算平方根的函数如:
    math.sqrt(2)

    就是就是求2的平方根

    查看全部

举报

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

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