请请编写程序:4 1)判断从键盘输入的 number是否是一个长度为11位,并以1开头的手机号码;。 2)判断并输出手机号码归服务商(电信、联通、移动),若都不属于,输出“未知服务商”
时间: 2024-10-25 21:03:31 浏览: 7
《Java语言程序设计(一)》课后习题答案(课程编号04747)
你可以使用Python编写这样的程序,首先我们需要定义一个正则表达式来匹配11位以1开头的手机号码格式,然后检查用户输入是否符合这个模式。接下来,我们可以根据中国的手机运营商前缀来确定归属的服务商:
```python
import re
def is_valid_phone_number(number):
# 正则表达式匹配11位以1开头的手机号码
pattern = r'^1[3-9]\d{9}$'
if re.match(pattern, number):
return True
else:
return False
def get_service_provider(number):
prefix_map = {
'13': '电信',
'15': '联通',
'18': '移动'
}
for prefix in prefix_map:
if number.startswith(prefix):
return prefix_map[prefix]
return "未知服务商"
def main():
number = input("请输入一个11位的手机号码(以1开头): ")
if is_valid_phone_number(number):
service_provider = get_service_provider(number)
print(f"{number} 归属的服务商是 {service_provider}")
else:
print(f"{number} 不是一个有效的手机号码")
if __name__ == "__main__":
main()
```
在这个程序中,我们首先检查用户输入的电话号码是否有效,如果有效,则通过`get_service_provider`函数查找并返回相应的服务提供商。如果找不到对应的服务商,就输出“未知服务商”。
阅读全文