Python大学教程(第2版) 第7章 字符串与正则表达式 实践题.docx
1.早期手机的键盘如图7-7所示。要输入英文字母,需要按下键盘上所对应的数字键。例如,字母J对应5键,S对应7键,而空格对应0键。现编写程序,用户输入一个只包含大写字母与空格的字符串,程序输出对应的键盘上数字的字符串。
例如,用户输入字符串“HELLOWORLD”,则程序应当输出“43556096753”。
keyboard={
??A:2,B:2,C:2,
??D:3,E:3,F:3,
??G:4,H:4,I:4,
??J:5,K:5,L:5,
??M:6,N:6,O:6,
??P:7,Q:7,R:7,S:7,
??T:8,U:8,V:8,
??W:9,X:9,Y:9,Z:9,
??:0
}
s=input()
result=
forcins:
??result+=keyboard[c]
print(result)
2.编写程序,用户输入一个以十六进制数表示的数字,程序输出对应的十进制数。例如,用户输入“12CF”,则程序应输出“4815”。
hex=input()
dec=int(hex,16)
print(dec)
3.编写一个函数来返回两个字符串的最长公共前缀。例如,“dislike”和“discourage”的最长公共前缀是“dis”。函数头应定义为
deflcp(s1,s2):
deflcp(string1,string2):
res=list()
foriinrange(len(string1)):
ch=string1[i]
ifstring2[i]==ch:
res.append(ch)
else:
return.join(res)
4.一些网站对用户输入的密码有一定要求。编写函数来检测用户输入的字符串是否为合法的密码。
假设密码规则如下:
①至少包含8个字符。
②密码只能包含英文字母、数字和下划线。
③在大写字母、小写字母、数字这三类字符中,密码至少包含两类。
程序提示用户输入一段字符串作为密码,如果密码合法就输出“Validpassword”,否则输出“Invalidpassword”。
importre
string=input()
po=pile([a-zA-z0-9_]{8,})
wa1=pile([a-z_]{8,})
wa2=pile([A-Z_]{8,})
wa3=pile([0-9_]{8,})
ifre.match(po,string):
ifre.match(wa1,string)orre.match(wa2,string)orre.match(wa3,string):
print(Invalidpassword)
else:
print(Validpassword)
else:
print(Invalidpassword)