任务1:电影信息提取
1、下面代码用于从电影信息字符串中提取排名前五的电影信息。请将代码补充完整。
2、程序保存到s13A.py。
import re
a="""
rating:9.52,title:肖申克的救赎,actors:蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿,
rating:9.71,title:霸王别姬,actors:张国荣,张丰毅,巩俐,
rating:9.36,title:控方证人,actors:泰隆·鲍华,玛琳·黛德丽,查尔斯·劳顿,
rating:9.48,title:伊丽莎白,actors:玛雅·哈克福特,安德烈 鲍尔,
rating:9.26,title:美丽人生,actors:罗伯托·贝尼尼,尼可莱塔·布拉斯基,
rating:9.63,title:辛德勒的名单,actors:连姆·尼森,本·金斯利,拉尔夫·费因斯,
rating:9.50,title:这个杀手不太冷,actors:让·雷诺,娜塔莉·波特曼,加里·奥德曼,
rating:9.67,title:阿甘正传,actors:汤姆·汉克斯,罗宾·怀特,加里·西尼斯,
rating:9.40,title:十二怒汉,actors:亨利·方达,马丁·鲍尔萨姆,约翰·菲德勒,
rating:9.53,title:泰坦尼克号,actors:莱昂纳多·迪卡普里奥,凯特·温丝莱特,
rating:9.68,title:背靠背,脸对脸,actors:牛振华,雷恪生,李强,
rating:9.69,title:灿烂人生,actors:路易吉·洛·卡肖,阿莱西奥·博尼,
rating:9.51,title:茶馆,actors:于是之,郑榕,蓝天野,英若诚,黄宗洛,
rating:9.39,title:巴黎圣母院,actors:海伦娜·赛加拉,加劳,丹尼尔·拉沃伊,
rating:9.43,title:罗密欧与朱丽叶,actors:达米安·萨格,希西莉亚·卡拉,
rating:9.50,title:盗梦空间,actors:莱昂纳多·迪卡普里奥,约瑟夫·高登-莱维特,
rating:9.63,title:千与千寻,actors:柊瑠美,入野自由,夏木真理,菅原文太"""
# 定义正则表达式:匹配电影名称/评分
t="title:(.+?)," #定义正则表达式匹配电影名称
r="rating:( )," #定义正则表达式匹配电影评分。补充代码
pt=re.compile(t) #预编译正则表达式t
pr=( ) #补充代码
# 匹配结果
dt=pt.findall(a)
dr=pr.findall(a)
n=len(dt)
a=[( ) for k in range(n)] #将匹配结果按(名称,评分)组成列表。补充代码
a.sort(key=lambda x:float( ),reverse=1) #按评分降序。补充代码
#显示前五名
print("排名\t影片\t\t评分")
for i in range(5):
print(f"{i+1}\t{a[i][0]}\t{a[i][1]}")
任务2:注册信息认证
1、下面代码可认证注册信息。请将代码补充完整。
2、程序保存到s13B.py。
import re
def checkuser(uid,pwd,phone):#检查账号uid、密码pwd和手机号码的有效性
# 账号长度为6~10个字符。包含汉字、大小写字母、和下划线。
ruid=re.compile(r"^[\u4E00-\u9FA5A-Za-z0-9_]{ }$") #补充代码
# 密码长度为6~10个字符必须以字母开头,包含字母数字下划线
rpwd=re.compile(r"^[a-zA-Z]\w{ }$") #补充代码
# 手机号码号段:130-139;145,147;150-153,155-159;176,178;182-189
rph=re.compile(r"^1(3\d|45|47|5[012356789]|7[68]|8[2-9])\d{ }$") #补充代码
if ruid.findall(uid):
if rpwd.findall(pwd):
( ):return 1 #补充代码
return 0
uid=input("输入账号:")
pwd=input("输入密码:")
phone=input("输入手机号码:")
if checkuser(uid,pwd,phone):print("OK")
else:print("ERROR")
任务3:邮箱有效性检测
假定邮箱格式为:A@B.C。其中:
1、A为6至19个数字或英文字母组成。
2、B为2至13个数字或英文字母组成。
3、C只能是com、cn或net
编写函数checkmail(mail)完成对邮箱有效性检测。邮箱有效返回1,否则返回0。并使用以下代码对函数进行调试。程序保存到s13C.py。
s=input("输入一个邮箱:")
if checkmail(s):print("OK")
else:print("ERROR")

