zoukankan      html  css  js  c++  java
  • 从0开始的Python学习019更多的Python内容2

    书接上文,接演Python全传

    话说学了这么多Python的基础知识,也该写一点让别人看不懂的代码了。

    lambda


    lambda表达式,是一个方法的简化形似,它没有自己的代码块,它后面的语句就是它的逻辑主体。lambda语句被用来创建新的函数对象,并且在运行的时候返回它们。

    # Fileanme:lambda.py
    
    def make_repeater(n):
        return lambda s:s*n
    
    twice = make_repeater(2)
    
    print(twice('word'))
    print(twice(5))

    运行结果

    这次有一点小复杂,在我们定义一个函数的时候,返回一个lambda表达式,根据结果分析程序,当我们对函数传入第一次参数的时候,定义的函数就变成了:

    def make_repeater(2):
        return lambda s:s*2

    这个函数发生了改变,但是还是缺少一个参数s,所以当我们再次调用函数的时候这个时候twice表示一个新的函数,就需要传入一个参数s,进行处理。

    需要注意的一点是,在lambda表达式中只能使用表达式。

    看一个网上的例子:

    list(filter(lambda x:True if x % 3 == 0 else False,range(100)))
    list(map(lambda x:True if x % 3 == 0 else False,range(100)))

    运行结果

    这里使用了filter和map方法,我们简单来看一下;

    在filter中传入一个方法一个序列,这个方法会将序列中的值依次传入到方法中然后生成一个新的序列。

    map是将方法中的计算结果生成一个新的序列返回。

    exec和eval语句


    exec语句用来执行储存在字符串或文件中的Python语句。

    eval语句用来计算存储在字符串中的有效Python表达式。

    通过例子就很好理解啦。

    assert(断言)语句


    断言语句用来声明某个声明条件是真的。

    如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。(不是很懂)看例子。

    看完也不是很懂。。。。。。

    再看:

    移除并返回索引处的项(默认最后一个)。如果列表为空或索引超出范围,则引发IndexError。

     list中的元素被移除了,所以它的长度就没有了,所以断言错误,所以没毛病了。

    repr函数


    repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object

    哈哈哈,这个厉害啦,repr()变成字符串了,eval()把字符串中的表达出来,可以这个很梦幻。基本上,repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。

    概括


    在这一章中,我们又学习了一些Python的特色,然而你可以肯定我们并没有学习完Python的所有特色。不过,到目前为止,我们确实已经学习了绝大多数你在实际中会使用的内容。这些已经足以让你去创建任何程序了。

     加油程序员。

  • 相关阅读:
    每周总结15
    第二阶段Day02
    第二阶段Day01
    假期学习记录03(高德地图错误码为7:key鉴权错误)
    假期学习记录02(高德地图关于开发版和调试版sha值)
    假期学习记录01(地图显示和基本的配置)
    android获取当前步数
    android实现轮播图(从互联网上寻找图片)
    android中gps的应用
    互联网营销精准决策项目总结
  • 原文地址:https://www.cnblogs.com/liuhappy/p/10687889.html
Copyright © 2011-2022 走看看