实验五

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

 

posted @ 2023-06-06 23:58  Terraria_cn  阅读(13)  评论(0)    收藏  举报