You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:完善将字母转换为电话号码数字的Python程序

字母电话号码转数字实现方案

你可以按以下步骤补全代码,实现需求:

  1. 捕获并预处理输入:把用户输入转为小写,同时去掉所有空格,统一格式方便后续匹配。
  2. 字符匹配数字:遍历每个预处理后的字符,对照你定义的numbers映射表,找到对应的数字并拼接成字符串。
  3. 添加分隔符:在第三位数字后插入-。

完整代码如下:

# 捕获用户输入并预处理:转小写、去空格
user_input = input("Enter the telephone number as letters: ").lower().replace(" ", "")
numbers = [('abc',2), ('def',3), ('ghi',4), ('jkl',5), ('mno',6), ('pqrs',7), ('tuv',8), ('wxyz',9)]
phone = ""

# 遍历每个字符,匹配对应的数字
for char in user_input:
    for chars, num in numbers:
        if char in chars:
            phone += str(num)
            break

# 在第三位后添加分隔符
if len(phone) >=3:
    phone = phone[:3] + "-" + phone[3:]

# 输出结果
print(phone)

代码说明:

  • lower()把所有字母转为小写,避免大小写匹配问题;replace(" ", "")直接移除空格,不用单独处理空格字符。
  • 双层循环中,外层遍历输入的每个字符,内层对照映射表找到对应数字,找到后立即break跳出内层循环,提升效率。
  • 最后判断长度后插入-,确保只有当数字长度足够时才添加分隔符,避免索引错误。

测试示例:输入GOT MILK,预处理后变成gotmilk,匹配后得到4686455,再处理为468-6455,符合需求。

内容的提问来源于stack exchange,提问作者TheWellAchieved

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:20:37