python中的文本到键编号

python中的文本到键编号,python,Python,所以我的挑战是: 在一些基本手机上,可以使用数字键盘发送文本消息。因为每个键都有多个与之关联的字母,所以大多数字母都需要多次按键。按此数字一次可生成按键上的第一个字母。按数字2、3、4或5次可生成该键列出的第二、第三、第四或第五个字符 关键符号 1.,?!: 2 A B C 三维E-F 4GHI 5jkl 6米不 7 p Q R S 8TUV 9宽X Y Z 0(空格) 编写一个程序,显示输入用户阅读的文本消息所需的按键。构造一个从每个字母或符号映射到按键的字典。然后使用字典生成并显示用户信息的

所以我的挑战是:

在一些基本手机上,可以使用数字键盘发送文本消息。因为每个键都有多个与之关联的字母,所以大多数字母都需要多次按键。按此数字一次可生成按键上的第一个字母。按数字2、3、4或5次可生成该键列出的第二、第三、第四或第五个字符

关键符号

1.,?!:

2 A B C

三维E-F

4GHI

5jkl

6米不

7 p Q R S

8TUV

9宽X Y Z

0(空格)

编写一个程序,显示输入用户阅读的文本消息所需的按键。构造一个从每个字母或符号映射到按键的字典。然后使用字典生成并显示用户信息的按键。例如,如果用户输入Hello,World!然后您的程序应该输出44335555666110966677755531111。确保您的程序同时处理大小写字母。忽略上表中未列出的任何字符,如分号和括号

到目前为止,我已经:

textLetters = {
'1':['.',',','?','!',':'],
'2':['A' or 'a','B' or 'b','C' or 'c'],
'3':['D' or 'd','E' or 'e','F' or 'f'],
'4':['G' or 'g','H' or 'h','I' or 'i'],
'5':['J' or 'j','K' or 'k','L' or 'l'],
'6':['M' or 'm','N' or 'n','O' or 'o'],
'7':['P' or 'p','Q' or 'q','R' or 'r','S' or 's'],
'8':['T' or 't','U' or 'u','V' or 'v'],
'9':['W' or 'w','X' or 'x','Y' or 'y','Z' or 'z'],
'0':[' ']
}

text = list(input("Please input a text so I can show you how to type it on your phone:"))


for i in text:
    for k,v in textLetters.items():
        if i in v:
            for a in range(v[i]):
                print(k)

如果没有“for a in range(v[i]),我就可以用这个程序打印输入的每个字符(值)的数字(键)。现在,我只需要程序根据每个键列表中每个值的深度,将键打印若干次(例如,如果我输入e,它将打印'3',但我希望它打印'33',因为e在3的列表中是深度2,所以它应该打印'3'两次)。有人知道如何解决这个问题吗?

我遵循了你的代码,对它进行了修改,它成功了。首先,删除字典中的OR值,并使用.lower函数(例如text.lower())将文本转换为lower。然后删除最后一个for循环上的v[I],因为它返回一个字符串。将其替换为v.index(i),它返回v中i的索引。

您使用的
运算符错误。我认为这个问题需要比我们能提供的更多的帮助。和你的导师坐下来(如果你有导师的话)。好的,我没有导师,不过谢谢你抽出时间
nums = {
    'a': '2',
    'b': '22',
    'c': '222',
    'd': '3',
    'e': '33',
    # etc...
}