发送短信。在某些老款手机上可以使用数字键盘发送短信。因为每个键都有多个与之关联的字母(见表6-2),所以大多数字母都需要多次按键。按下键一次将产生该键对应的第一个字符。按下键2、3、4或5次则会生成该键对应的第二、第三、第四或第五个字符。现在用一个字典d存储表6-2中的对应关系,键是0~9的一个整数,其值是一个该键对应符号组成的字符串。给定上述字典d和一个字符串s,返回该字符串对应的按键序列。
例如字符串“Hello,world!”对应的按键序列是4433555555666110966677755531111
思路:注意到符号对应下标+1正好是要摁下键的次数,即","下标为1,+1后为2,即要摁下两次1,即“,”对应“11”,所以可以构建一个字典,键为符号,值为该符号对应要摁下多少次按键,
如{“C”:222}
然后遍历输入字符串,在构建新字典中取对应的值就可以,注意可以全部转换成大写再取值
def word(d,s):
d2={}
s2=''
for i in d:#i是键
for k in d[i]:#k是遍历值的变量
d2[k]=str(i)*(d[i].index(k)+1)
for l in s:
s2+=(d2[l.upper()])
return s2
if __name__=="__main__":
print(word({1:".,?!;",2:"ABC",3:"DEF",4:"GHI",5:"JKL",6:'MNO',7:'PQRS',8:'TUV',9:'WXYZ',0:' '},"Hello,World!"))