zoukankan      html  css  js  c++  java
  • Python核心编程第二版 第十一章课后答案

    11-3. 
    函数。在这个练习中,我们将实现max()和min()内建函数。 
    (a)写分别带两个元素返回一个较大和较小元素,简单的max2()和min2()函数。他们应该可以用任意的Python对象运作。举例来说,max2(4,8)和min2(4,8)会各自每次返回8和4。 
    (b)创建使用了在a部分中的解来重构max()和min()的新函数my_max()和my_min()。这些函数分别返回非空队列中一个最大和最小值。他们也能带一个参数集合作为输入。用数字和字符串来测试你的解。 

    from operator import lt
    
    def max2(num1,num2):
        ele = lt(num1,num2)
        if ele == True:
            return num2
        else:
            return num1
    
    def min2(num1,num2):
        ele = lt(num1,num2)
        if ele == True:
            return num1
        else:
            return num2
    def my_max(l):
        eleList = l
        for i in range(len(eleList)-1):
            eleList[0] = max2(eleList[0],eleList[i+1])
        return eleList[0]
    
    def my_min(l):
        eleList = l
        for i in range(len(eleList)-1):
            eleList[0] = min2(eleList[0],eleList[i+1])
        return eleList[0]

    11–6. 变长参数。下一个称为printf()的函数。有一个值参数,格式字符串。剩下的就是根据格式化字符串上的值,要显示在标准输出上的可变参数,格式化字符串中的值允许特别的字符串格式操作指示符,如%d, %f, etc。提示:解是很琐碎的----无需实现字符串操作符功能性,但你需要显示用字符串格式化操作(%)

    def printf(fmt,*var):  
        print (fmt % var)  

    11–10.用filter()进行函数式编程。在unix 文件系统中,在每个文件夹或者目录中都有两个特别的文件:'.'表示现在的目录,'..'表示父目录。给出上面的知识,看下os.listdir()函数的文档并描述这段代码做了什么:files = filter(lambda x: x and x[0] != '.', os. listdir(folder)) 

    将文件过滤出来。

    11–17.定义 
    (a) 描述偏函数应用和currying 之间的区别。 
    (b) 偏函数应用和闭包之间有什么区别? 
    (c) 最后,迭代器和生成器是怎么区别开的? 

    我理解,偏函数就是匿名函数。

    匿名函数:没有函数名称的函数;

    闭包:一个可以使用另外一个函数作用域中的变量的函数,函数调用返回后一个没有释放资源的栈区;

    迭代器和生成器类比的话,赌场发牌的荷官算是一个比较接近的例子。
    本来你需要自己去处理一堆牌(一个 collection),现在你有了这个对象,只要不断问他要“下一张”,他要是有自然会给你,没有就结束(StopIteration)。

  • 相关阅读:
    python学习day02
    鼓起勇气 大胆说不
    spring系列---- spring-mvc1
    win7-64位 jdk安装
    项目分层以及阶段期限规划
    老油条之记
    论软件与管理的关系---企业管理软件的末路
    软件项目管理之觞
    世界在变化-----谷歌不安全
    LPR利率与固定利率哪个更合算?
  • 原文地址:https://www.cnblogs.com/jiaoyang77/p/7489553.html
Copyright © 2011-2022 走看看