Python学习系列(六)(模块)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python学习系列(六)(模块),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6169字,纯文字阅读大概需要9分钟。
内容图文
一,模块的基本介绍
1,import引入其他标准模块
标准库:Python标准安装包里的模块。
引入模块的几种方式:
i)引入模块:import moduleName
ii)引入模块下的函数:from moduleName import function1,function2,……
iii)引入模块下的所有函数:from moduleName import *
使用模块里的函数的方法:
moduleName.function(agrs)
示例:
1 >>> import math
2 >>> r=math.sqrt(16)
3 >>> print r
4 4.0
如果模块或者函数名字过长可以在import后使用as给该模块取别名,之后可以通过“别名.函数”使用模块里的函数。
示例:
1 >>> import webbrowser as web
2 >>> web.open_new_tab(‘http://www.cnblogs.com‘)
3 True
2,使用自定义模块
testfile.py下:
1
def
readfile():
2 fr=open(‘wformat.txt‘,‘r‘)
3while (1==1):
4 line=fr.readline()
5if(line==‘‘):
6break7else:
8print line
9 fr.close()
test.py下:(与testfile.py同在一个目录文件里面)
1
import
testfile
2 testfile.readfile()
结果如图:
1 >>> ===================== RESTART ==============================
2 >>>
3 name age sex
4 张三 78 male
5 李四 50 male
6 王五 80 male
7 张强 90 female
调用层次结构:
~/|
|
|
|tes1.py
|
#调用“testfile模块的程序文件”tes1.py
|
|_test
|
#目录test
|
|_ _testfile.py
|
#模块文件testfile.py
|
|_ _testfile.pyc
|
#模块字节码文件testfile.pyc
|
注意:.pyc是模块字节码文件,在使用模块是Python解释器需要把模块加载到系统里,若发现.py比.pyc新,则需要重新编译生成.pyc,否则不需要。文件.pyc是在第一次加载模块文件时完成的。
如果被调用模块程序与模块程序不在同一个目录文件下,则需要调用os.path.append(模块文件所在的目录)
3,使用模块示例Json模块
1)Python下使用dumps函数可以将Python数据字典转换成Json数据结构。
Python |
Json |
dict |
object |
list,tuple |
array |
unicode str |
str |
int,long |
number(int) |
float |
number(real) |
True |
true |
False |
false |
示例:
1 import json 2 s=[{‘f‘:(1,3,5,‘a‘),‘x‘:None}] 3 d=json.dumps(s) 4print d
结果如图:
1 >>> 2 [{"x": null, "f": [1, 3, 5, "a"]}]
2)Json数据转换Python数据,解码loads(对应关系如上表)
二,正则模块re
1)正则表达式的常见应用:
- 验证字符串:如合法的邮件地址,HTTP地址等。
- 查找字符串
- 替换字符串
- 提取字符串
2)基本概念:
正则表达式 :是一段文本或者一个公式,用来描述用某种模式去匹配一类字符串的公式,并且该公式具有一定的模式。
匹配 :给定一段文本或者字符串,使用正则表达式从文本或字符串中查找出符合正则表达式的字符串。有可能文本或字符串存在不止一个部分满足给定的正则表达式,这是每一个这样的部分被称为一个 匹配 。
元字符 :一次只能匹配一个字符或者一个位置。故元字符分:匹配字符的元字符和匹配位置的元字符。
i)匹配字符的元字符
- ^string:匹配所有以string字符串开始的行
- string$:匹配所有以string字符串结尾的行
- $^:匹配空行
- \bStr:\b匹配以Str开始的单词(等价于\<)
- Str\b:\b匹配以Str结尾的单词(等价于\>)
ii)匹配位置的元字符
- \w:匹配单词里字符(字母,数字和下划线)
- \W:匹配单词里非字符
- \d:匹配单词里数字
- \D:匹配单词里非数字
- \s:匹配单词里空格字符
- \S:匹配单词里非空格字符
示例:
1 >>> import re 2 >>> s=‘Hello www.jeapedu.com‘ 3 >>> res=r‘\bjea‘ 4 >>> print re.findall(res,s) 5 [‘jea‘] 6 >>> res=r‘jea\b‘ 7 >>> print re.findall(res,s) 8[] 9 >>> res=r‘edu\b‘10 >>> print re.findall(res,s) 11 [‘edu‘] 1213import re 14 s=‘‘‘15ahello 16www.baidu.com 17hello world 1819nice hellod world 20piece of helloe world 21‘‘‘22 res=r‘\hello‘23print‘hello:‘,re.findall(res,s) 24 >>> ================================ RESTART ================================ 25 >>> 26 hello [‘hello‘, ‘hello‘, ‘hello‘, ‘hello‘] 2728import re 29 s=‘a1b2c3d‘30 res=‘\w\d‘31print re.findall(res,s) 32 res=‘\w\d\w‘33print re.findall(res,s) 34 >>> ================================ RESTART ================================ 35 >>> 36 [‘a1‘, ‘b2‘, ‘c3‘] 37 [‘a1b‘, ‘c3d‘]
1 import re 2 s=‘‘‘Plz write a mail to zhangbocheng189@163.com 3or 649414754@qq.com,thanks!‘‘‘ 4 res=r‘\w[\w\.-]+@[\w\.-]+\.\w{2,4}‘ 5#*表示匹配0次及其以上,+表示匹配1次及以上。 6print re.findall(res,s) 7 8 >>> ================================ RESTART ================================ 9 >>> 10 [‘zhangbocheng189@163.com‘, ‘649414754@qq.com‘]
1 import re 2 s=‘‘‘www.baidu.comwww.BaidU.comwww.bAIDU.comwww.baidu.comwww.Baidu.com‘‘‘ 3 res1=r‘(b|B)\w*(u|U)‘ 4#*表示匹配0次及其以上,+表示匹配1次及以上。 5 res2=r‘[bB]\w*(u|U)‘ 6 res3=r‘[bB]\w*[uU]‘ 7print res1+‘:‘ 8print re.findall(res1,s) 9print res2+‘:‘10print re.findall(res2,s) 11print res3+‘:‘12print re.findall(res3,s) 1314 >>> ================================ RESTART ================================ 15 >>> 16 (b|B)\w*(u|U): 17 [(‘b‘, ‘u‘), (‘B‘, ‘U‘), (‘b‘, ‘U‘), (‘b‘, ‘u‘), (‘B‘, ‘u‘)] 18 [bB]\w*(u|U): 19 [‘u‘, ‘U‘, ‘U‘, ‘u‘, ‘u‘] 20 [bB]\w*[uU]: 21 [‘baidu‘, ‘BaidU‘, ‘bAIDU‘, ‘baidu‘, ‘Baidu‘]
限定符 :用于指定允许特定字符或字符集自身重复出现的次数。
- (pattern)?:重复0次或者1次,等价于{0,1}
- (pattern)*:至少重复0次,等价于{0,}
- (pattern)+:至少重复1次,等价于{1,}
- (pattern){m:n}:重复至少m次,至多m次
- (pattern)??:使用重复0次或者1次
- (pattern)*?:尽可能少地使用重复的第一个匹配
- (pattern)+?:尽可能少地使用重复但至少使用一次
示例:
1 import re 2 s=‘‘‘Tell to me 110-123-1114119 or call 4008-6688-9988 3 or 13306247965‘‘‘ 4 res=r‘\d+\D\d+\D\d+‘ 5#*表示匹配0次及其以上,+表示匹配1次及以上。 6 res1=r‘\d{11}‘ 7print re.findall(res,s) 8print re.findall(res1,s) 910 >>> ================================ RESTART ================================ 11 >>> 12 [‘110-123-1114119‘, ‘4008-6688-9988‘] 13 [‘13306247965‘]
1 import re 2 s=‘hello www.baidu.com‘ 3print‘----------------compile--------------------‘ 4 res=‘[\s\.]‘ 5 pat=re.compile(res) 6print pat.findall(s) 7print pat.split(s) 8print‘----------------split--------------------‘ 9 res=‘[\s\.]‘10print re.findall(res,s) 11print re.split(res,s) 1213 >>> ================================ RESTART ================================ 14 >>> 15 ----------------compile-------------------- 16 [‘‘, ‘.‘, ‘.‘] 17 [‘hello‘, ‘www‘, ‘baidu‘, ‘com‘] 18 ----------------split-------------------- 19 [‘‘, ‘.‘, ‘.‘] 20 [‘hello‘, ‘www‘, ‘baidu‘, ‘com‘]
三、小结
本章主要介绍python开发的进阶知识,模块及其正则的相关知识,正则表达式是编程的一个很重要的知识点,需多多研究。
额外补充一点小知识:
1 import sys 2 for i in sys.argv: 3print i 45 >>> 6 D:\Python学习\pythontest\test.py
2, dir 函数:列举模块定义的 标识符 ,如函数、类和变量。当为 dir 提供一个模块名称的时候,返回模块定义的 名称列表 ,否则返回当前模块中定义的名称列表。
1 >>> import sys 2 >>> dir() 3 [‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘i‘, ‘sys‘] 4 >>> a=5 5 >>> dir() 6 [‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘a‘, ‘i‘, ‘sys‘] 7 >>> del a #删除一个变量/名称 8 >>> dir() 9 [‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘i‘, ‘sys‘] 10 >>>
原文:http://www.cnblogs.com/zhangbc/p/3901385.html
内容总结
以上是互联网集市为您收集整理的Python学习系列(六)(模块)全部内容,希望文章能够帮你解决Python学习系列(六)(模块)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。