Python核心编程第三版习题解答(第一章)

没有找到官方的解答,将解答记录在此,方便自己,方便他人,错误难免,请留言告知!如有问题,也可一起探讨!

环境Python3.7.1 Visual Studio Code

 1-1

​
import re
#输出结果['bat', 'but', 'hit']
patt = r'[bh][aiu]t'
print(re.findall(patt,'fdjkbatfjkdbutfdjkhit'))
​

1-2

import re
#输出结果['leon chang', 'kathy wong']
patt = r'[A-Za-z-]+ [A-Za-z-]+'
print(re.findall(patt,'leon chang kathy wong'))

1-3

import re
#输出结果['l, c', 'kathy, wong']
patt = r'[A-Za-z-]+, [A-Za-z-]+'
print(re.findall(patt,'l, c kathy, wong'))

 

1-4

import re
#输出结果result3
patt = r'[A-Za-z]\w+'
print(re.match(patt,'result3').group())

 

1-5

import re
#输出结果1180 BordeauxDrive
#3120 De la Cruz Boulevard
patt = r'\d+( [A-za-z]+)+'
string1 = '1180 BordeauxDrive'
string2 = '3120 De la Cruz Boulevard'
print(re.match(patt,string1).group())
print(re.match(patt,string2).group())

 

1-6

import re
#输出结果www.google.com
#www.harvard.edu
patt = r'^www\.[A-Za-z]+\.(com|net|edu)$'
address1 = 'www.google.com'
address2 = 'www.harvard.edu'
print(re.search(patt,address1).group())
print(re.search(patt,address2).group())

 

1-7

import re
#输出结果-999
patt = r'-?\d+$'
print(re.match(patt,'-999'))

 

1-8

import re
#输出结果-999L
patt = r'-?\d+[lL]$'
print(re.match(patt,'-999L').group())

 

1-9

import re
#输出结果-999L
patt = r'-?[0-9]+(\.[0-9]*)?'
print(re.match(patt,'-99.99').group())

 

1-10

import re
#输出结果-3+3i
patt = r'-?\d*\+\d*i*'
print(re.search(patt,'-3+3i').group())

 

1-11

import re
#输出结果zhang@mail.qq.com
patt = r'\w+@(\w+\.)*\w+.com'
print(re.search(patt,'zhang@mail.qq.com').group())

1-12

import re
pattern = r'((http:|https:)//)?([w]{3}\.)?\w+\.\w+'
string = 'http://foothill.edu'
print re.match(pattern, string).group()

1-13

import re
#输出结果int
patt = r'<type "(.+)">'
print(re.search(patt,'<type "int">').group(1))

 

1-14

import re
#输出结果11
patt = '1[0-2]'
print(re.search(patt,'11').group())

 

1-15

import re
#输出结果[('', '1234-567866-66656'), ('1111-2222-3333-4444', ''), ('1111222233334444', '')]
patt = r'([0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4})|([0-9]{4}-?[0-9]{6}-?[0-9]{5})'
print(re.findall(patt,'1234-567866-66656 1111-2222-3333-4444 1111222233334444'))

 

1-16

from random import randrange,choice
from string import ascii_lowercase as lc
from time import ctime

tlds = ('com','edu','net','org','gov')

for i in range(randrange(5,11)):
    dtint = randrange(2**32)
    dtstr = ctime(dtint)
    llen = randrange(4,8)
    login = ''.join(choice(lc) for j in range(llen))
    dlen = randrange(llen,13)
    dom = ''.join(choice(lc) for j in range(dlen))
    data = '%s::%s@%s.%s::%d-%d-%d' % (dtstr, login,
              dom, choice(tlds), dtint, llen, dlen)
    with open('redata.txt','w') as f:
        f.write(data)

 

1-17

import re
#输出结果
# ['Wed ']
#['Thu ']
#['Wed ']
#['Thu ']
#['Sat ']
patt = r'^\w{3}\s'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-18

import re
#输出结果
# ['Wed Jul 13 04:50:28']
# ['Thu Jan  4 10:11:05']
# ['Wed Mar  6 21:29:55']
# ['Thu May 20 00:45:23']
# ['Sat Dec 11 14:06:49']
patt = r'^\w{3}\s\w{3}\s\s?\d{1,2}\s\d{2}:\d{2}:\d{2}'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

1-19

import re
#输出结果
# ['Wed Jul 13 04:50:28 1988']
# ['Thu Jan  4 10:11:05 2052']
# ['Wed Mar  6 21:29:55 2058']
# ['Thu May 20 00:45:23 2049']
# ['Sat Dec 11 14:06:49 2094']
patt = r'^\w{3}\s\w{3}\s\s?\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4}'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-20

import re
#输出结果
['niofb@pujouvqncx.com']
['xzhur@tjjus.net']
['lizlr@kujcgs.com']
['wsdam@gvrchikorf.edu']
['hdswav@qqxtvufcagn.com']
patt = r'::(\w+@\w+.\w{3})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-21

import re
#输出结果
['Jul']
['Jan']
['Mar']
['May']
['Dec']
patt = r'\s(\w{3}\s)'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-22

import re
#输出结果
# ['1988']
# ['2052']
# ['2058']
# ['2049']
# ['2094']
patt = r'\s(\d{4})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-23

import re
#输出结果
# ['04:50:28']
# ['10:11:05']
# ['21:29:55']
# ['00:45:23']
# ['14:06:49']
patt = r'\s(\d{2}:\d{2}:\d{2})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-24

import re
#输出结果
# [('niofb', 'pujouvqncx.com')]
# [('xzhur', 'tjjus.net')]
# [('lizlr', 'kujcgs.com')]
# [('wsdam', 'gvrchikorf.edu')]
# [('hdswav', 'qqxtvufcagn.com')]
patt = r'(\w+)@(\w+.\w{3})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.findall(patt,line.rstrip()))

 

1-26

import re
#输出结果
# Wed Jul 13 04:50:28 1988::zz@eyou.com::584743828-5-10
# Thu Jan  4 10:11:05 2052::zz@eyou.com::2587947065-5-5
# Wed Mar  6 21:29:55 2058::zz@eyou.com::2782646995-5-6
# Thu May 20 00:45:23 2049::zz@eyou.com::2505055523-5-10
# Sat Dec 11 14:06:49 2094::zz@eyou.com::3942886009-6-11
patt = r'(\w+)@(\w+.\w{3})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.sub(patt,'zz@eyou.com',line.rstrip()))

 

1-27

import re
#输出结果
# Jul/Wed/1988
# Jan/Thu/2052
# Mar/Wed/2058
# May/Thu/2049
# Dec/Sat/2094
patt = r'(\w{3})\s(\w{3})\s\s?\d+\s\d{2}:\d{2}:\d{2}\s(\d{4})'
with open('redata.txt','r') as f:
    for line in f:
        print(re.sub(patt,r'\2/\1/\3',re.search(patt,line.rstrip()).group()))

 

1-28

import re
#输出结果123-1234
patt = r'\b(\d{3}-)?(\d{3})-\d{4}\b'
print(re.search(patt,'123-1234').group())

 

1-30-32题目看的都费劲,之后再做

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值