Python如何限制输入仅为10位纯数字,禁止字母、符号及超长度内容
Python简易号码查询工具输入校验实现
核心校验逻辑
需要在获取用户输入后,优先做两类合法性校验,校验通过后再执行号码归属查询:
- 校验输入长度:必须严格等于10位
- 校验输入字符:必须全部为数字,不得包含字母、符号、空格等内容
最小改动版本(保留原有代码逻辑)
直接在原有代码的输入语句后新增校验分支即可,修改后完整代码如下:
def num(): number = input("请输入查询号码:") # 新增输入校验逻辑 if len(number) != 10: print("错误:仅允许输入10位内容") return if not number.isdigit(): print("错误:仅允许输入纯数字,禁止包含字母、符号") return # 原有号码查询逻辑 if number == "1111111111": print("Amal") elif number == "2222222222": print("Mohammed") elif number == "3333333333": print("Khadijah") elif number == "4444444444": print("Abdullah") elif number == "5555555555": print("Rawan") elif number == "6666666666": print("Faisal") elif number == "7777777777": print("Layla") else: print("抱歉,未找到该号码对应的信息") num()
优化版本(更易维护)
用字典存储号码与姓名的映射关系,后续新增/修改号码时不需要堆砌elif语句:
# 号码与姓名映射表,新增数据直接在这里添加即可 phone_book = { "1111111111": "Amal", "2222222222": "Mohammed", "3333333333": "Khadijah", "4444444444": "Abdullah", "5555555555": "Rawan", "6666666666": "Faisal", "7777777777": "Layla" } def num(): number = input("请输入查询号码:") # 输入校验 if len(number) != 10: print("错误:仅允许输入10位内容") return if not number.isdigit(): print("错误:仅允许输入纯数字,禁止包含字母、符号") return # 查询逻辑 result = phone_book.get(number) if result: print(result) else: print("抱歉,未找到该号码对应的信息") num()
内容的提问来源于stack exchange,提问作者Amal
相关产品推荐
相关产品推荐

