栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

电话号码对应英文单词 (python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

电话号码对应英文单词 (python)

在电话号码输入数字,输出他所有的单词组合。

解法 1

循环法,这里假设电话号码只有3位,那么可以使用3个for循环来进行输出。

c = ["","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"] # 分别代表着0,1,2,3,4,5,6,7,8,9
total = [0,0,3,3,3,3,3,4,3,4] # 分别代表着c中字母的数量
number = list(map(int, input().split()))
TelLength = len(number) # 电话号码的位数
answer = [0 for _ in range(TelLength)] # 表示数字目前代表的在C的相对位置,比如A为0,B为1,C为3

for answer[0] in range(total[number[0]]):
    for answer[1] in range(total[number[1]]):
        for answer[2] in range(total[number[2]]):
            for i in range(3):
                print(c[number[i]][answer[i]], end="")
            print()
解法 2

将解法1进行改写,使其应用范围更广代码更简洁。

c = ["","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"] # 分别代表着0,1,2,3,4,5,6,7,8,9
total = [0,0,3,3,3,3,3,4,3,4] # 分别代表着c中字母的数量
number = list(map(int, input().split()))
TelLength = len(number) # 电话号码的位数
answer = [0 for _ in range(TelLength)] # 表示数字目前代表的在C的相对位置,比如A为0,B为1,C为3

while True:
    # 输出数据
    for i in range(TelLength):
        print(c[number[i]][answer[i]], end="")
    print()
    k = TelLength - 1 #从最下层开始遍历
    while k>=0:
        if answer[k] < total[number[k]] - 1:#如果没有到达尾部,直接取
            answer[k] += 1
            break
        else:
            answer[k] = 0 # 该层的值变成第一位
            k -= 1 #遍历上层
    if k < 0:# 最上层也遍历完了
        break
解法 3

采用递归的方法来进行改写解法1。

c = ["","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"] # 分别代表着0,1,2,3,4,5,6,7,8,9
total = [0,0,3,3,3,3,3,4,3,4] # 分别代表着c中字母的数量
number = list(map(int, input().split()))
TelLength = len(number) # 电话号码的位数
answer = [0 for _ in range(TelLength)] # 表示数字目前代表的在C的相对位置,比如A为0,B为1,C为3


def RecursiveSearch(numbre, answer, index, n):
    if index == n:
        for i in range(TelLength):
            print(c[number[i]][answer[i]], end="")
        print()
        return
    for answer[index] in range(total[number[index]]):
        RecursiveSearch(numbre, answer, index+1, n)
RecursiveSearch(number, answer, 0, TelLength)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号