用户输入一组由手机号码构成的列表(元素为字符串),编写程序判断它们是否符合手机号码的规则,即是由11位阿拉伯数字组成。先判断字符串位数是否正确,如果不对则输出wrong weishu ;如果字符串包含非数字字符则输出wrong char,如果符合要求则输出ok。输出分行显示。定义2个Exception的子类WeishuError和CharError,分别处理上述两种异常
时间: 2024-02-19 20:04:08 浏览: 148
好的,以下是使用Python实现的代码:
```python
class WeishuError(Exception):
pass
class CharError(Exception):
pass
def check_phone_numbers(phone_numbers):
for phone_number in phone_numbers:
if not phone_number.isdigit():
print("wrong char")
continue
if len(phone_number) != 11:
print("wrong weishu")
continue
print("ok")
# 测试
phone_numbers = ["12345678901", "123456789012", "1234567890a"]
check_phone_numbers(phone_numbers)
```
在这个程序中,我们定义了两个Exception的子类`WeishuError`和`CharError`,用于处理位数错误和非数字字符错误。然后,我们定义了一个`check_phone_numbers`函数,它接受一个由手机号码构成的字符串列表作为输入。函数首先检查每个字符串是否只包含数字字符,如果不是则抛出`CharError`异常;如果字符串长度不为11,则抛出`WeishuError`异常;否则,输出ok表示该字符串符合手机号码的规则。
在测试中,我们传入了一个包含三个不同字符串的列表。第一个字符串长度为11且只包含数字字符,所以输出ok;第二个字符串长度不为11,所以输出wrong weishu;第三个字符串包含非数字字符,所以输出wrong char。
阅读全文