6.用户输入由一组手机号码构成的列表(元素为字符串),编写程序判断它们是否符合手机号码的规则,即由11位阿拉伯数字组成。先判断字符串位数是否正确,如果不对则输出wrong weishu;如果字符串包含非数字字符则输出wrong char,如果符合要求则输出ok。输出分行显示。定义2个Exception的子类WeishuError和CharError,分别处理上述2种异常。
时间: 2024-03-06 20:50:56 浏览: 157
好的,这是一个关于Python异常处理的问题。下面是代码实现:
```python
class WeishuError(Exception):
pass
class CharError(Exception):
pass
def check_phone(nums):
for num in nums:
try:
if len(num) != 11:
raise WeishuError
if not num.isdigit():
raise CharError
print("ok")
except WeishuError:
print("wrong weishu")
except CharError:
print("wrong char")
nums = ["12345678901", "1234567890a", "1234567890"]
check_phone(nums)
```
在这段代码中,我们定义了两个异常类WeishuError和CharError,分别用于处理位数错误和非数字字符错误。 `check_phone` 函数接收一个字符串列表作为参数,并对每个字符串进行检查。如果字符串长度不为11,则抛出WeishuError异常;如果字符串包含非数字字符,则抛出CharError异常。如果字符串符合手机号码规则,则输出ok。
在主程序中,我们创建一个字符串列表并调用 `check_phone` 函数,输出结果为:
```
ok
wrong char
wrong weishu
```
阅读全文