实验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.复习了集合,加深了对文件的理解

  

  

  

  

posted on 2022-05-18 20:14  马可菠萝堡  阅读(32)  评论(1编辑  收藏  举报

导航