作者:mobiledu2502880051 | 来源:互联网 | 2023-06-06 23:01
task.3.pydefis_valid(s):iflen(s)!18:returnFalseelifs.isdigit()bool(1)orXins:returnbool(1)e
task.3.py
def is_valid(s):
if len(s)!=18:
return False
elif s.isdigit()==bool(1) or 'X' in s :
return bool(1)
else:
return False
with open('D:\\data3_id.txt','r',encoding='utf-8') as f:
d1=f.readlines()
l1=[]
l2=[]
l3=[]
for line in d1:
line=line.strip('\n')
line=list(line.split(','))
s=''.join(line[1])
if is_valid(s):
l3.append(line)
for i in range(len(l3)):
l1.append(l3[i][0])
a=l3[i][1][6:10]
b=l3[i][1][10:12]
c=l3[i][1][12:14]
l2.append(a+'-'+b+'-'+c)
d1=dict(zip(l1,l2))
d2=sorted(d1.items(),key=lambda x:x[1])
for k in d2:
print(f'{k[0]}:{k[1]}')
task.5-1.py
import random
import datetime
t=datetime.datetime.now()
filename=t.strftime('%Y%m%d')+'.txt'
with open('D:\\data5.txt','r',encoding='utf-8') as f:
d1=f.readlines()
l1=[]
for line in d1:
line=line.strip('\n')
line=line.split('\t')
l1.append(line)
n=int(input('输入随机抽点的人数n:'))
b=random.sample(l1,n)
d=''.join(str(b))
with open(filename,'w',encoding='utf-8') as f:
for i in b:
c=' '.join(i)
f.writelines(c+'\n')
print(c)
task.5-2.py
import random
import datetime
t=datetime.datetime.now()
filename=t.strftime('%Y%m%d')+'.txt'
with open('D:\\data5.txt','r',encoding='utf-8') as f:
d1=f.readlines()
l1=[]
for line in d1:
line=line.strip('\n')
line=line.split('\t')
l1.append(line)
file=open (filename,'w',encoding='utf-8')
a=2
while a==2:
n=int(input('输入随机抽点的人数n:'))
if n!=0:
b=random.sample(l1,n)
for j in b:
l1.remove(j)
c=' '.join(j)
print(c)
file.writelines(c+'\n')
else:
print('{:=^40}'.format('抽点结束'))
break
file.close()
实验总结:1.在排序时可以将列表转换为字典再利用lambda(x:代表要进行排序参数的位置)函数对值进行排序,不改变相应的键值对应关系
2.list.append(a+b+c)可以用加号连接进行多个字符串连成一个字符串写进列表中
3.''.join(list)可以实现将列表转换为字符串