标签:

一、反射

cat = Cat(‘kitty‘)print cat.name #访问实例属性

cat.sayHi() #调用实例方法

print dir(cat) #获取实例的属性名,以列表形式返回

if hasattr(cat, ‘name‘): #检查实例是否有这个属性

setattr(cat, ‘name‘, ‘tiger‘) #same as: a.name = ‘tiger‘

print getattr(cat, ‘name‘) #same as: print a.name

getattr(cat,‘sayHi‘)() #same as: cat.sayHi()

dir([obj]): 调用这个方法将返回包含obj大多数属性名的列表(会有一些特殊的属性不包含在内)。obj的默认值是当前的模块对象。

hasattr(obj, attr):这个方法用于检查obj是否有一个名为attr的值的属性,返回一个布尔值。

getattr(obj, attr):调用这个方法将返回obj中名为attr值的属性的值,例如如果attr为‘bar‘,则返回obj.bar。

setattr(obj, attr, val): 调用这个方法将给obj的名为attr的值的属性赋值为val。例如如果attr为‘bar‘,则相当于obj.bar = val。

二、模块补充

__doc__: 文档字符串。如果模块没有文档,这个值是None。

*__name__: 始终是定义时的模块名;即使你使用import .. as 为它取了别名,或是赋值给了另一个变量名。

*__dict__: 包含了模块里可用的属性名-属性的字典;也就是可以使用模块名.属性名访问的对象。

__file__: 包含了该模块的文件路径。需要注意的是内建的模块没有这个属性,访问它会抛出异常!

importfnmatch as mprint m.__doc__.splitlines()[0] #Filename matching with shell patterns.

print m.__name__ #fnmatch

print m.__file__ #/usr/lib/python2.6/fnmatch.pyc

print m.__dict__.items()[0] #(‘fnmatchcase‘, )

json模块:

实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接传递,所以需要将其转换成字符串形式.转换的过程也是一种序列化过程.

用json.dumps序列化为json字符串格式

>>> importjson>>> dic {‘Connection‘: [‘keep-alive‘], ‘Host‘: [‘127.0.0.1:5000‘], ‘Cache-Control‘: [‘max-age=0‘]}>>> jdict = json.dumps({‘Connection‘: [‘keep-alive‘], ‘Host‘: [‘127.0.0.1:5000‘], ‘Cache-Control‘: [‘max-age=0‘]})>>> printjdict

{"Connection": ["keep-alive"], "Host": ["127.0.0.1:5000"], "Cache-Control": ["max-age=0"]}

虽然dic和jdict打印的字符串是相同的,但是实际它们的类型是不一样的.dic是字典类型,jdict是字符串类型

>>>type(jdic)>>>type(jdict)

可以用json.dumps序列化列表为json字符串格式

>>> list = [1, 4, 3, 2, 5]>>> jlist =json.dumps(list)>>> printjlist

[1, 4, 3, 2, 5]

json.loads把json字符串反序列化为python对象

son.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

re模块

martch和search的区别

Python提供了两种不同的原始操作:match和search。match是从字符串的起点开始做匹配,而search(perl默认)是从字符串做任意匹配。

注意:当正则表达式是‘ ^ ‘开头时,match与search是相同的。match只有当且仅当被匹配的字符串开头就能匹配 或 从pos参数的位置开始就能匹配 时才会成功。如下:

>>> import re

>>> re.match("c", "abcdef")

>>> re.search("c","abcdef")

>>> re.match("c", "cabcdef")

>>> re.search("c","cabcdef")

>>> patterm = re.compile("c")

>>> patterm.match("abcdef")

>>> patterm.match("abcdef",1)

>>> patterm.match("abcdef",2)

3.模块内容

re.compile(pattern, flags=0)

编译正则表达式,返回RegexObject对象,然后可以通过RegexObject对象调用match()和search()方法。

prog = re.compile(pattern)

result = prog.match(string)

result = re.match(pattern, string)

是等价的。

第一种方式能实现正则表达式的重用。

re.search(pattern, string, flags=0)

在字符串中查找,是否能匹配正则表达式。返回_sre.SRE_Match对象,如果不能匹配返回None。

re.match(pattern, string, flags=0)

字符串的开头是否能匹配正则表达式。返回_sre.SRE_Match对象,如果不能匹配返回None。

re.split(pattern, string, maxsplit=0)

通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。

>>> re.split(‘\W+‘, ‘Words, words, words.‘)

[‘Words‘, ‘words‘, ‘words‘, ‘‘]

>>> re.split(‘(\W+)‘, ‘Words, words, words.‘)

[‘Words‘, ‘, ‘, ‘words‘, ‘, ‘, ‘words‘, ‘.‘, ‘‘]

>>> re.split(‘\W+‘, ‘Words, words, words.‘, 1)

[‘Words‘, ‘words, words.‘]

>>> re.split(‘[a-f]+‘, ‘0a3B9‘, flags=re.IGNORECASE)

注意:我使用的Python是2.6,查看源代码发现split()并没有flags的参数,2.7才增加。这种问题我发现不止一次了,官方的文档 跟 源码不一致的现象,如果发现异常,应该去源码中找找原因。

如果在字符串的开始或结尾就匹配,返回的list将会以空串开始或结尾。

>>> re.split(‘(\W+)‘, ‘...words, words...‘)

[‘‘, ‘...‘, ‘words‘, ‘, ‘, ‘words‘, ‘...‘, ‘‘]

如果字符串不能匹配,将会返回整个字符串的list。

>>> re.split("a","bbb")

[‘bbb‘]

re.findall(pattern, string, flags=0)

找到 RE 匹配的所有子串,并把它们作为一个列表返回。这个匹配是从左到右有序地返回。如果无匹配,返回空列表。

>>> re.findall("a","bcdef")

[]

>>> re.findall(r"\d+","12a32bc43jf3")

[‘12‘, ‘32‘, ‘43‘, ‘3‘]

re.finditer(pattern, string, flags=0)

找到 RE 匹配的所有子串,并把它们作为一个迭代器返回。这个匹配是从左到右有序地返回。如果无匹配,返回空列表。

>>> it = re.finditer(r"\d+","12a32bc43jf3")

>>> for match in it:

print match.group()

12

32

43

3

re.sub(pattern, repl, string, count=0, flags=0)

找到 RE 匹配的所有子串,并将其用一个不同的字符串替换。可选参数 count 是模式匹配後替换的最大次数;count 必须是非负整数。缺省值是 0 表示替换所有的匹配。如果无匹配,字符串将会无改变地返回。

re.subn(pattern, repl, string, count=0, flags=0)

与re.sub方法作用一样,但返回的是包含新字符串和替换执行次数的两元组。

re.escape(string)

对字符串中的非字母数字进行转义

re.purge()

清空缓存中的正则表达式

4.正则表达式对象

re.RegexObject

re.compile()返回RegexObject对象

re.MatchObject

group()返回被 RE 匹配的字符串

start()返回匹配开始的位置

end()返回匹配结束的位置

span()返回一个元组包含匹配 (开始,结束) 的位置

标签:

python第六章答案_python第六章相关推荐

  1. 《python基础教程》答案(第六章)

    <python基础教程>答案(第六章) # created by swy """ solutions to beginning python "&q ...

  2. 慕课python第六周测验答案_中国大学慕课答案第六章节答案_Python语言程序设计作业答案...

    中国大学慕课答案第六章节答案_Python语言程序设计作业答案 更多相关问题 求证:tan(x+y)+tan(x-y)=sin2xcos2x-sin2y. 若cosθ1+tan2θ+sinθ1+cot ...

  3. python入门题目及答案_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

  4. 趣学python编程第六章答案_Python核心编程-第六章-习题

    有.in操作符:find()方法和count()方法和index()均能实现 import string import keyword alphas = string.letters + '_' nu ...

  5. python程序设计实验教程 翟萍 第五章答案_Python程序设计实验教程

    第一部分实 验 指 导 实验1Python概述:Python运行环境3 实验2基本数据类型11 实验2.1Python基本数据处理11 实验2.2Python函数库16 实验3选择结构:选择结构的使用 ...

  6. python程序设计清华大学出版社答案_Python程序设计-清华大学出版社-董付国第1章基础知识.ppt...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython Python程序设计-清华大学出版社-董付国第1章 ...

  7. python语言程序设计基础第二章答案_python语言程序设计基础(嵩天版),第二章程序练习题...

    python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...

  8. python中rim的用法_Python笔记(六)_函数

    函数一般是从第一行代码开始执行,结束于return语句.异常.或者函数所有语句执行完毕.一旦函数将控制权交还给调用者,就意味着全部结束.函数中做的所有工作以及保存在局部变量中的数据都将丢失.再次调用这 ...

  9. python程序设计第一章答案_Python《学习手册:第一章-习题》

    人们选择Python的六大主要原因是什么? 软件质量:Python注重可读性.一致性和软件质量.Python代码的设计致力于可读性,因此具备了比传统脚本语言更优秀的可重用性和可维护性. Python的 ...

最新文章

  1. 计算机视觉库OpenCV初步了解
  2. 仿ArrayList功能的bag类
  3. java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
  4. BootstrapTable入门Demo
  5. codeforces test #12 C. Subsequences 树状数组统计
  6. CSDN写博客时设置图片显示大小
  7. Nginx解决服务器宕机问题
  8. 转【是什么浪费了我的时间 】
  9. spring——事务管理
  10. MySQL 数据库性能优化
  11. windows文件自动同步
  12. 电脑如何进行长截图?
  13. 初级学电脑计算机的入门知识,电脑基础知识入门学习(小白学好电脑从哪里开始)...
  14. word xml 上下标
  15. html5中表格怎么写,HTML5制作表格样式本
  16. 【影音基础】深度解析什么是HDR高动态范围?
  17. 高级系统架构师培训笔记
  18. 成人, 像婴儿那样心无旁骛地学习
  19. macOS Monterey 12.3 (21E230) 虚拟机 IOS 镜像
  20. ElasticSearch:为中文分词器增加对英文的支持(让中文分词器可以处理中英文混合文档)(转)

热门文章

  1. 科技人文丨爱上陌生人的36个问题
  2. SQL Server XML 数据类型
  3. 华为数通笔记-ISIS基础
  4. 全国计算机一级上表格怎么做,全国计算机一级考试word表格制作(2003版)
  5. EXFO MAX-710B光时域反射仪OTDR主要功能
  6. 基于Matlalb使用惯性传感器融合和MPU9250估计方向(附源码)
  7. 关于dnw驱动安装失败的问题解决
  8. Java8--20道关于Stream流的题目练习
  9. win10升级更新2004版卡在49%解决办法
  10. 【Oracle Hint】Oracle Hint学习笔记【一】