大学作业技术求助:如何反转电话号码前3位并添加括号
搞定电话号码前缀反转的小技巧
嘿,看来你卡在电话号码前3位反转这一步啦!别着急,这个问题其实很容易解决,我来一步步帮你理清楚。
首先咱们明确下需求:比如输入一个电话号码1234567890,处理后要输出(321)4567890——也就是把前3位数字反转后放进括号,后面的部分保持不变。
核心逻辑拆解
你已经能读取电话号码了,那只需要给每个号码加三步处理:
- 提取前3位数字:如果是字符串类型的号码,直接用切片
num[:3]就能拿到前三位; - 反转前3位:Python里用切片
[::-1]可以快速反转字符串,比如"123"[::-1]会得到"321"; - 拼接成目标格式:用格式化字符串把反转后的前缀放进括号,再拼接后面的号码部分。
完整代码示例
假设你原来的读取逻辑是从输入获取多个号码,那把处理逻辑加进去就可以了:
# 读取电话号码(你已经实现的部分可以替换成自己的代码) 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
相关产品推荐
相关产品推荐

