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

大学作业技术求助:如何反转电话号码前3位并添加括号

搞定电话号码前缀反转的小技巧

嘿,看来你卡在电话号码前3位反转这一步啦!别着急,这个问题其实很容易解决,我来一步步帮你理清楚。

首先咱们明确下需求:比如输入一个电话号码1234567890,处理后要输出(321)4567890——也就是把前3位数字反转后放进括号,后面的部分保持不变。

核心逻辑拆解

你已经能读取电话号码了,那只需要给每个号码加三步处理:

  1. 提取前3位数字:如果是字符串类型的号码,直接用切片num[:3]就能拿到前三位;
  2. 反转前3位:Python里用切片[::-1]可以快速反转字符串,比如"123"[::-1]会得到"321";
  3. 拼接成目标格式:用格式化字符串把反转后的前缀放进括号,再拼接后面的号码部分。

完整代码示例

假设你原来的读取逻辑是从输入获取多个号码,那把处理逻辑加进去就可以了:

# 读取电话号码(你已经实现的部分可以替换成自己的代码)
phone_numbers = []
print("请输入电话号码,输入q结束输入:")
while True:
    input_num = input("> ")
    if input_num.lower() == 'q':
        break
    # 可选:清理号码中的非数字字符(比如空格、横杠)
    clean_num = ''.join(filter(str.isdigit, input_num))
    phone_numbers.append(clean_num)

# 处理每个电话号码
processed_results = []
for num in phone_numbers:
    if len(num) >= 3:
        # 提取前三位并反转
        reversed_prefix = num[:3][::-1]
        # 拼接成目标格式
        processed_num = f"({reversed_prefix}){num[3:]}"
        processed_results.append(processed_num)
    else:
        # 处理长度不足3位的情况
        processed_results.append(num)
        print(f"提示:号码「{num}」长度不足3位,无法反转前缀,将原样保留")

# 输出处理后的结果
print("\n处理后的电话号码:")
for res in processed_results:
    print(res)

关键细节说明

  • 字符串切片的用法:num[:3]表示从开头取到第3个字符(不包含索引3),num[3:]表示从第3个字符开始取到结尾;
  • 非数字字符清理:如果输入的号码带有-、 这类分隔符,用filter(str.isdigit, input_num)可以过滤出所有数字字符,避免处理出错;
  • 边界情况处理:加个长度判断,避免号码过短导致切片报错,同时给用户友好提示。

这样应该就能完美解决你的瓶颈啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:05:54