从0开始的Python学习019更多的Python内容2

书接上文,接演Python全传程序员

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

lambda学习


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

# Fileanme:lambda.py

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

twice = make_repeater(2)

print(twice('word'))
print(twice(5))

运行结果3d

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

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

这个函数发生了改变,可是仍是缺乏一个参数s,因此当咱们再次调用函数的时候这个时候twice表示一个新的函数,就须要传入一个参数s,进行处理。对象

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

看一个网上的例子:索引

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的全部特点。不过,到目前为止,咱们确实已经学习了绝大多数你在实际中会使用的内容。这些已经足以让你去建立任何程序了。

 加油程序员。

相关文章
相关标签/搜索