实验五
tack6
1 with open('data6.csv','r',encoding='gbk') as f: 2 data=f.readlines() 3 4 k=[] 5 for i in data: 6 k.append(i.strip()) 7 8 print(f'{k[0]}:\n{k[1:]}') 9 s=['四舍五入后数据'] 10 for j in k[1:]: 11 s.append(str(int(float(j)+0.5))) 12 print(f'{s[0]}:\n{s[1:]}') 13 g=[] 14 for m in range(1,len(k)): 15 g.append([k[m],s[m]]) 16 print(g) 17 18 with open('data6_processed.csv','w',encoding='gbk') as f: 19 for n in g: 20 f.write(','.join(n)+'\n')


tack7
1 with open(r"data7.csv",'r', 2 encoding='gbk') as f: 3 data=f.readlines() 4 5 data0=[i.strip('\n').split(',') for i in data] 6 data0.remove(data0[0]) 7 8 data1=sorted(data0,key=lambda x:(x[2],-int(x[3]))) 9 10 print(f'{"学号":10s}{"姓名":10s}{"专业":10s}{"分数":10s}') 11 for h,i,j,k in data1: 12 print(f'{h:10s}{i:10s}{j:10s}{k:10s}') 13 14 with open(r'data7_processed.csv','w', 15 encoding='gbk') as f: 16 f.write('学号,姓名,专业,分数\n') 17 for i in range(len(data1)): 18 f.write(','.join(data1[i])+'\n')


tack8
1 with open(r"hamlet.txt",'r') as f: 2 data=f.read() 3 4 print('hamlet.txt粗略统计:') 5 print(f'行数:{len(data.splitlines())}') 6 print(f'单词数:{len(data.split())}') 7 print(f'字符数:{len(data)}') 8 print(f'空格数:{data.count(" ")}') 9 10 data1=data.splitlines() 11 data2=[] 12 for i in range(len(data1)): 13 data2.append(f'{i+1} '+data1[i]+'\n') 14 15 with open(r'hamlet_with_line_number.txt','w') as f: 16 f.writelines(data2)

tack9
1 def is_valid(id): 2 if len(id)==18 and id[:-1].isdigit() and (id[-1].isdigit() or id[-1]=='X'): 3 return True 4 else: 5 return False 6 7 with open(r"data9_id.txt",'r',encoding='utf-8') as f: 8 data=f.readlines() 9 10 data.remove(data[0]) 11 data0=[i.strip('\n').split(',') for i in data] 12 13 data1=[] 14 for i in data0: 15 if is_valid(i[1])==True: 16 i[1]=i[1][6:14] 17 data1.append(i) 18 19 import datetime 20 t=datetime.datetime.now() 21 y=t.strftime('%Y%m%d') 22 for i in data1: 23 i.append(str(int(y)-int(i[1][0:8]))) 24 25 data2=sorted(data1,key=lambda x:-int(x[2])) 26 27 print('姓名, 出生日期, 年龄') 28 for i in data2: 29 i[1]=i[1][0:4]+'-'+i[1][4:6]+'-'+i[1][6:8] 30 i[2]=i[2][0:2] 31 print(', '.join(i))

tack10
1 with open(r"data10_stu.txt",'r',encoding='utf-8') as f: 2 data=f.readlines() 3 4 data0=[i.strip('\n').split('\t') for i in data] 5 6 import random 7 n=eval(input('输入随机抽点人数:')) 8 data1=random.sample(data0,n) 9 for i in data1: 10 print(' '.join(i)) 11 12 import datetime 13 t=datetime.datetime.now() 14 fn=t.strftime('%Y%m%d') 15 16 with open(r'{}.txt'.format(fn),'w') as f: 17 for i in data1: 18 i[0]+='\t' 19 i[1]+='\t' 20 i[2]+='\n' 21 f.writelines(i)

1 import datetime 2 t = datetime.datetime.now() 3 filename = t.strftime('%Y%m%d') + '.txt' 4 start='抽取开始' 5 print(start.center(50,'*')) 6 with open('data10_stu.txt', 'r', encoding='utf-8') as f: 7 data = f.readlines() 8 9 def random_selection(n): 10 import random 11 demo = random.sample(data, n) 12 return demo 13 selection=set() 14 numbers=[] 15 16 while True: 17 n = eval(input('输入随机抽点人数:')) 18 if n != 0: 19 x=random_selection(n) 20 for i in x: 21 print(i) 22 data.remove(i) 23 with open(filename,'a',encoding='utf-8') as f : 24 f.writelines(i) 25 else: 26 print('抽取结束'.center(50,'*')) 27 break


浙公网安备 33010602011771号