输入n,然后连续输入n个身份证号。 然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。 输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。 输入sort2,将所有身份证按照里面的年月日升序输出。
时间: 2023-06-05 11:47:15 浏览: 139
好的,以下是回复:
题目描述:输入n,然后连续输入n个身份证号。 然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。 输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。 输入sort2,将所有身份证按照里面的年月日升序输出。
解答:
输入n和n个身份证号,可以使用input()函数进行输入,然后将身份证号存储在一个列表中。
接着,根据输入的sort1或sort2,分别执行不同的功能。如果输入的不是sort1或sort2,则输出exit并退出。
对于sort1,可以使用正则表达式提取身份证号中的年月日信息,然后按照年-月-日的格式组装,并使用sorted()函数进行升序排序。最后输出排序后的结果。
对于sort2,可以使用相同的方法提取身份证号中的年月日信息,然后将所有身份证号存储在一个列表中,并使用sorted()函数进行升序排序。最后输出排序后的结果。
完整代码如下:
import re
n = int(input("请输入身份证号个数:"))
id_list = []
for i in range(n):
id = input("请输入身份证号:")
id_list.append(id)
sort_type = input("请输入排序方式(sort1或sort2):")
if sort_type == "sort1":
date_list = []
for id in id_list:
date = re.findall("\d{4}\d{2}\d{2}", id)[]
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
date_list.append(date)
sorted_list = sorted(date_list)
for date in sorted_list:
print(date)
elif sort_type == "sort2":
date_list = []
for id in id_list:
date = re.findall("\d{4}\d{2}\d{2}", id)[]
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
date_list.append(date)
sorted_list = sorted(date_list)
for id in id_list:
for date in sorted_list:
if date in id:
print(id)
else:
print("exit")