实验6
任务3
def is_valid(s):
if len(s)!=18:
return 'False'
for i in s:
if i.isdigit():
continue
elif i.isalpha():
if i!='X':
return 'False'
break
else:
return 'False'
break
else:
return 'True'
data,data_new,sfz,sfz_new,s,p=[],[],[],[],[],[]
with open('data3_id.txt','r',encoding='utf-8') as f:
for line in f:
data.append(line.strip('\n').split(','))
sfz.append(line.strip('\n').split(',')[1])
del data[0],sfz[0]
for i in range(len(sfz)):
if is_valid(sfz[i])=='True':
data_new.append(data[i])
sfz_new.append(sfz[i])
for i in range(len(sfz_new)):
a=data_new[i][0]+','+sfz_new[i][6:10]+'-'+sfz_new[i][10:12]+'-'+sfz_new[i][12:14]
s.append(a)
def second(x):
return int(x[3:7])
s=sorted(s,key=second)
for i in s:
print(i)

任务5
task5_1
with open('data5.txt','r',encoding='utf-8') as f:
data=f.readlines()
s,l=set(),[]
r=eval(input('输入随机抽点人数: '))
import random
while True:
x=random.randint(1,80)
s.add(x)
if len(s)==r:
break
for i in s:
l.append(data[i])
import datetime
t=datetime.datetime.now()
filename=t.strftime('%Y%m%d')
with open(filename+'.txt','w',encoding='utf-8') as f1:
f1.writelines(l)
for line in l:
print(line,end='')

task5_2
with open('data5.txt','r',encoding='utf-8') as f:
data=f.readlines()
a,b='抽点开始','抽点结束'
s_all=set()
print(f'{a:=^40}')
while True:
s,l=set(),[]
r=eval(input('输入随机抽点人数: '))
if r==0:
print(f'{b:=^40}')
break
else:
import random
while True:
x=random.randint(1,80)
if x not in s_all:
s.add(x)
s_all.add(x)
else:
continue
if len(s)==r:
break
for i in s:
l.append(data[i])
import datetime
t=datetime.datetime.now()
filename=t.strftime('%Y%m%d')
with open(filename+'.txt','a',encoding='utf-8') as f1:
f1.writelines(l)
for line in l:
print(line,end='')

实验总结:
1.学会了random库、time库的使用
2.排序还可以通过定义关键字进行排序
3.复习了集合,加深了对文件的理解
浙公网安备 33010602011771号