6.用户输入由一组手机号码构成的列表(元素为字符串),编写程序判断它们是否符合手机号码的规则,即由11位阿拉伯数字组成。先判断字符串位数是否正确,如果不对则输出wrong weishu;如果字符串包含非数字字符则输出wrong char,如果符合要求则输出ok。输出分行显示。定义2个Exception的子类WeishuError和CharError,分别处理上述2种异常。 【注意】运行效果应如下所示,格式错误算结果错误。 测试1:(第1行为输入,第2行为输出) ['13912341234','1391234123x','139000'] ok wrong char wrong weishu
时间: 2024-04-03 14:30:31 浏览: 97
判断手机号码是否正确
3星 · 编辑精心推荐
以下是实现上述功能的代码:
```python
class WeishuError(Exception):
pass
class CharError(Exception):
pass
phone_list = input("请输入手机号码列表,用逗号分隔:").split(",")
for phone in phone_list:
try:
if len(phone) != 11:
raise WeishuError()
elif not phone.isdigit():
raise CharError()
else:
print("ok")
except WeishuError:
print("wrong weishu")
except CharError:
print("wrong char")
```
运行效果如下:
```
请输入手机号码列表,用逗号分隔:13912341234,1391234123x,139000
ok
wrong char
wrong weishu
```
首先定义了两个异常类WeishuError和CharError,分别用于处理位数异常和非数字字符异常。在主模块中,先将输入的字符串以逗号为分隔符转换为列表,然后依次判断每个手机号码是否符合要求。如果手机号码位数不是11位,则抛出WeishuError异常;如果手机号码包含非数字字符,则抛出CharError异常;否则输出"ok"。注意,这里使用了try-except语句捕获异常,并根据不同的异常类型输出不同的提示。
阅读全文