前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0开始的Python学习019更多的Python内容2

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

作者头像
Happy、Liu
发布2019-04-24 16:06:25
5550
发布2019-04-24 16:06:25
举报
文章被收录于专栏:技术由浅入深技术由浅入深

书接上文,接演Python全传

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

lambda


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

代码语言:javascript
复制
# Fileanme:lambda.py

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

twice = make_repeater(2)

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

运行结果

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

代码语言:javascript
复制
def make_repeater(2):
    return lambda s:s*2

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

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

看一个网上的例子:

代码语言:javascript
复制
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的所有特色。不过,到目前为止,我们确实已经学习了绝大多数你在实际中会使用的内容。这些已经足以让你去创建任何程序了。

 加油程序员。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档