77范文网 - 专业文章范例文档资料分享平台

python核心编程第15章学习笔记

来源:网络收集 时间:2018-12-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Python核心编程学习笔记之chapter 15

这一章蛮重要,代码都敲进去试过,请批评指正。 方便起见,程序写在py文件中。

1. 识别下列字符串:“bat,” “bit,” “but,” “hat,” “hit,” 或 “hut” #!/usr/bin/env python import re pattern='[bh][aiu]t' m='bkibit'

n=re.search(pattern,m) if n is not None:

print n.group() Ps:还可以findall函数

2.匹配用一个空格分隔的任意一对单词,比如,名和姓 pattern='[A-Za-z]+\\ [A-Za-z]+'

3. 匹配用一个逗号和一个空格分开的一个单词和一个字母。例如,英文人名中的姓和名 的首字母 pattern='[A-Za-z]+\\.\\ [A-Za-z]' 4. 匹配所有合法的Python标识符 pattern='[\\w]+'

Ps:不是非常完美,&算不算?

5.请根据您(读者)本地关于地址的格式写法匹配一个街道地址(你写出的正则表达式要 尽可能通用以匹配任意数目的表示街道名字的单词,

包括类型指示)。比如,美国的街道地址使用这 样的格式:1180 Bordeaux Drive.

使你写的正则表达式尽可能通用,要求能够匹配多个单词的街道 名字,

如:3120 De la Cruz Boulevard. pattern='[\\d]+\\ [A-Za-z\\ ]+'

Ps:1180 Bordeaux Drive of New York呢?

6.匹配简单的以“www.”开头,以“.com”作结尾的Web域名,例如:www.yahoo.com.

附 加题:使你写的正则表达式还支持其他顶级域名:.edu, .net 等,比如:www.ucsc.edu. pattern='w{3}\\.[\\w]+\\.[\\w]+' Ps:seach与match的差别?

7.匹配全体Python整数的字符串表示形式的集合 pattern='\\d+'

8. 匹配全体Python长整数的字符串表示形式的集合 pattern='\\d+[L]?'

9. 匹配全体Python浮点数的字符串表示形式的集合 pattern='\\d+\\.\\d*'

10.匹配全体Python复数的字符串表示形式的集合 pattern='\\d*\\.?\\d*\\+\\d*\\.?\\d*j'

11.匹配所有合法的电子邮件地址(先写出一个限制比较宽松的正则表达式,然后尽可能加 强限制条件,但要保证功能的正确性)。 pattern='\\w+\\@\\w+\\.\\w+'

12.匹配所有合法的 Web 网站地址(URLs)(先写出一个限制比较宽松的正则表达式,然后尽可能加强限制条件,但要保证功能的正确性)。

pattern='www\\.\\w+\\.\\w+'

13.type(). type()内建函数返回一个对象类型,此对象显示为 Python 的字符串形式,

如下所示:

>>> type(0) >>> type(.34) >>> type(dir)

请写一个正则表达式,能从这个字符串中提取出类型的名字。 你的函数能实现以下功能:如

果以字符串“”做输入,会返回类型“int”.(返回其他类型也同理,如,返回类型?float?,

?builtin_function_or_method?等) 提示:正确的结果保存在类和某些内建类型的__name__属性 里。

pattern=''

n=re.search(pattern,\if n is not None: print n.group(1)

14.正则表达式。在 15.2 小节里,我们给出一个匹配由一位或两位数字代表一月到九月的 字符串形式(“0?[1-9]”)。 请写出一个正则表达式 表示标准日历上其它的三个月(十月、十一月、 十二月)。

pattern='1[0-2]'

15.正则表达式。在15.2小节里,我们给出一个匹配信用卡卡号的模式:(“[0-9]{15,16}”).

但这个模式不允许用连字符号分割信用卡卡号中的数字。请写出一个允许使用连字符的正则表达式,

但要求连字符必须出现在正确的位置。例如,15位的信用卡卡号的格式是4-6-5,表示四个数字,一 个连字符,后面接六个数字、一个连字符,最后是五个数字。16位的信用卡卡号的格式是4-4-4-4, 数位不足时,添0补位。

'([0-9]{4}\\-?[0-9]{4}\\-?[0-9]{4}\\-?[0-9]{4}?)|\\ ([0-9]{4}\\-?[0-9]{6}\\-?[0-9]{5})'

ps:基于此思路还可以写出限制更宽松或更严格的条件,这里的问号我以为是出现一次或零次的意思,后来证实并非如此,但这个表达式是可行的

16.修改脚本 gendata.py 的代码,使数据直接写入文件 redata.txt 中,而不是输出到屏 幕上。

#!/usr/bin/env python

from random import randint,choice from string import lowercase from sys import maxint from time import ctime

doms=('com','edu','net','org','gov') t=''

for i in range(randint(5,10)):

dtint=randint(0,maxint-1) #pick date dtstr=ctime(dtint) #date string

shorter=randint(4,7) #login shorter em=''

for j in range(shorter): #generate login em +=choice(lowercase)

longer=randint(shorter,12) #create domain dn=''

for j in range(longer): dn+=choice(lowercase)

t+='%s::%s@%s.%s::%d-%d-%d\\n'%(dtstr,em, dn,choice(doms),dtint,shorter,longer)

f=open('C:/python27/redata.txt','a') f.write(t) f.close()

17.统计生成的redata.txt文件中,星期中的每一天出现的次数(或统计各月份出现的次 数)。

#!/usr/bin/env python

import re

m=['Mon','Tue','Wed','Thu','Fri','Sat','Sun'] for i in range(len(m)): x=[] pattern=m[i]

f=open('C:/python27/redata.txt','r') for eachLine in f.readlines(): n=re.search(pattern,eachLine) if n is not None: x+=[n.group()]

print '%s appears %d times' % (m[i], len(x))

18.通过检查每个输出行中整数字段部分的第一个整数是否和该行开头的时间戳相匹配来 验证redata.txt中的数据是否完好

#!/usr/bin/env python import re

from time import ctime

pattern='\\:\\:(\\d+)'

f=open('C:/python27/redata.txt','r') j=0

for eachLine in f.readlines():

n=re.search(pattern,eachLine) pattern1='[A-Z][a-z]{2}\\ \\d+\\:\\d+\\:\\d+\\ \\d+'

m=re.search(pattern1,eachLine).group() str(m)

if n is not None:

k=ctime(int(n.group(1))) str(k)

[A-Z][a-z]{2}\\

\\d+\\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库python核心编程第15章学习笔记在线全文阅读。

python核心编程第15章学习笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/355807.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: