python - 在 Python 中将字母转换为电话号码的数字

标签 python phone-number

我正在尝试编写一个程序,提示用户以字符串形式输入电话号码。输入可以包含字母,程序将字母(无论是大写还是小写)转换为数字,并保持所有其他字符不变。这是我到目前为止所拥有的:

def getNumber(uppercaseLetter):
    if uppercaseLetter == 'A':
        number = 2
    elif uppercaseLetter == 'B':
        number = 2
    elif uppercaseLetter == 'C':
        number = 2
    elif uppercaseLetter == 'D':
        number = 3
    elif uppercaseLetter == 'E':
        number = 3
    elif uppercaseLetter == 'F':
        number = 3
    elif uppercaseLetter == 'G':
        number = 4
    elif uppercaseLetter == 'H':
        number = 4
    elif uppercaseLetter == 'I':
        number = 4
    elif uppercaseLetter == 'J':
        number = 5
    elif uppercaseLetter == 'K':
        number = 5
    elif uppercaseLetter == 'L':
        number = 5
    elif uppercaseLetter == 'M':
        number = 6
    elif uppercaseLetter == 'N':
        number = 6
    elif uppercaseLetter == 'O':
        number = 6
    elif uppercaseLetter == 'P':
        number = 7
    elif uppercaseLetter == 'Q':
        number = 7
    elif uppercaseLetter == 'R':
        number = 7
    elif uppercaseLetter == 'S':
        number = 7
    elif uppercaseLetter == 'T':
        number = 8
    elif uppercaseLetter == 'U':
        number = 8
    elif uppercaseLetter == 'V':
        number = 8
    elif uppercaseLetter == 'W':
        number = 9
    elif uppercaseLetter == 'X':
        number = 9
    elif uppercaseLetter == 'Y':
        number = 9
    elif uppercaseLetter == 'Z':
        number = 9
    return number

def translateNumber():
    phoneNumber = str(input("Enter a string: "))
    for char in phoneNumber:
        if char in    ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']:
        getNumber(char)
        return char
        else:
            return char
        print(phoneNumber)

出于某种原因,我无法让它工作,而且我不确定问题出在哪里。有人可以帮我解决这个问题吗?谢谢!

最佳答案

不解释您的代码(已由 Chrisitan 完成)。这里只是一个方法:

>>> char_numbers = [('abc',2), ('def',3), ('ghi',4), ('jkl',5), ('mno',6), ('pqrs',7), ('tuv',8), ('wxyz',9)]
>>> char_num_map = {c:v for k,v in char_numbers for c in k}
>>> phone = "JUST 1 NUMBER"
>>> result = "".join(str(char_num_map.get(v,v)) for v in phone.lower())
>>> result
'5878 1 686237'

关于python - 在 Python 中将字母转换为电话号码的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22214652/

相关文章:

php - php codeigniter中的电话号码验证

python - 如何从 docker 容器内的 cron 文件运行脚本?

python - pandas groupby 与 nan 的意思

python - 如何打印 Keras 张量值?

javascript - 在 Flask 模板中运行 Ember-Table

python - 附加在 for 循环中生成的 pandas 数据帧

ios - 更新现有的 'Contacts' 电话号码?

iphone - 从地址簿中获取 iPhone 电话号码标签

android - 从本地地址簿中确定电话号码国家代码

ios - Path app如何在注册过程中知道我的电话号码