编写一个程序,这个程序有两个接口和若干个类,能实现: 1. 接口1对应的是一种字符串的检验方法,这个方法可以呈现出两种功能,既能对用户输入的数据是不是手机号进行验证(如果是手机号,打印:“您输入的格式正确!”,如果不是手机号,打印“您输入的不是手机号,请重新输入!”),也能对用户输入的数据是不是邮箱进行验证(如果是邮箱,打印:“您输入的邮箱格式正确!”,如果不是邮箱,打印“您输入的不是邮箱,请重新输入!”)(12分,每种方法的实现6分); 2. 接口2对应的是一种数组的操作方法,这个方法可以呈现出两种功能,既能对一个数组进行排序(输出排序后的结果),又能对一个数组进行查找(输出查找的结果)(8分,每种方法的实现4分); 3. 调用对应的接口执行程序输出对应的结果。
时间: 2024-03-25 10:40:19 浏览: 5
以下是一个实现以上要求的示例代码:
```python
import re
# 接口1:字符串检验方法
class StringValidator:
@staticmethod
def validate_phone_number(input_str):
# 验证是否为手机号
phone_regex = r'\b1[3456789]\d{9}\b'
if re.match(phone_regex, input_str):
print("您输入的格式正确!")
return True
else:
print("您输入的不是手机号,请重新输入!")
@staticmethod
def validate_email(input_str):
# 验证是否为邮箱
email_regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
if re.match(email_regex, input_str):
print("您输入的邮箱格式正确!")
return True
else:
print("您输入的不是邮箱,请重新输入!")
# 接口2:数组操作方法
class ArrayOperator:
@staticmethod
def sort(arr):
sorted_arr = sorted(arr)
print(sorted_arr)
return sorted_arr
@staticmethod
def search(arr, item):
if item in arr:
print("元素 %s 在数组中!" % item)
else:
print("元素 %s 不在数组中!" % item)
# 调用接口1:字符串检验方法
input_str = input("请输入需要验证的字符串:")
StringValidator.validate_phone_number(input_str)
StringValidator.validate_email(input_str)
# 调用接口2:数组操作方法
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
operation = input("请输入数组操作(sort:排序,search:查找):")
if operation == 'sort':
ArrayOperator.sort(arr)
elif operation == 'search':
search_item = input("请输入要查找的元素:")
ArrayOperator.search(arr, search_item)
```
这个示例代码中,我们定义了两个类`StringValidator`和`ArrayOperator`,分别对应接口1和接口2。在`StringValidator`类中,我们定义了两个静态方法`validate_phone_number`和`validate_email`,分别用于验证输入是否为手机号和邮箱。在`ArrayOperator`类中,我们同样定义了两个静态方法`sort`和`search`,分别用于对数组进行排序和查找操作。
在主程序中,我们首先调用接口1对输入字符串进行检验,然后调用接口2对输入数组进行排序或查找操作。如果是排序操作,则调用`ArrayOperator`类的`sort`方法,如果是查找操作,则调用`ArrayOperator`类的`search`方法。