实验五

任务六

实验源码

 1 with open('data6.csv','r',encoding='gbk')as f:
 2     data=list(f.readlines())
 3 data=[i.strip('\n') for i in data ]
 4 
 5 import decimal
 6 decimal.getcontext().rounding='ROUND_HALF_UP'
 7 title=[data[0],'四舍五入后的数据']
 8 data_new=[]
 9 data_o=[]
10 for i in data:
11     if not i.isalpha() is True:
12         data_o.append(eval(i))
13 print('原始数据:')
14 print(data_o)
15 for i in data:
16     if not i.isalpha() is True:
17         data_new.append([i])
18 
19 data_=[]
20 for i in data:
21     if not i.isalpha() is True:
22         index=data.index(i)-1
23         i=eval(i)
24         if i-int(i)>=0.5:
25             i=int(i)+1
26             data_new[index].append(str(i))
27             data_.append(i)
28         else:
29             i=int(i)
30             data_new[index].append(str(i))
31             data_.append(i)
32 print('四舍五入后的数据:')
33 print(data_)
34 import csv
35 with open('data6_processed.csv','w',encoding='gbk',newline='') as f :
36     f_writer=csv.writer(f)
37     f_writer.writerow(title)
38     f_writer.writerows(data_new)
task

运行结果截图

实验源码

 1 with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\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'C:\Users\28678\Downloads\实验5数据文件\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')
task

运行结果截图

任务八

实验源码

 1 with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\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'C:\Users\28678\Downloads\实验5数据文件\hamlet_with_line_number.txt',
16 'w') as f:
17     f.writelines(data2)
task

运行结果截图

任务九

实验源码

 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"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data9_id.txt",'r') 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))
View Code

任务十

 1 with open('data10_stu.txt','r',encoding='utf-8') as f:
 2     data = f.readlines()
 3 print('{:*^40}'.format('抽点开始'))
 4 n = int(input('输入随机抽点人数:'))
 5 import random
 6 x = []
 7 x2 = ''
 8 counts = 0
 9 while counts < n:
10     new = random.randint(0, len(data) - 1)
11     if new in x:
12         new = random.randint(0, len(data) - 1)
13     else:
14         counts +=1
15         x.append(new)
16 for i in range(n):
17     print(data[x[i]])
18     x2 += data[x[i]]
19     sum1 += n
20 with open('20230602.txt','w',encoding='utf-8') as f:
21     f.writelines(x2)
task1

运行结果截图

 1 with open('data10_stu.txt','r',encoding='utf-8') as f:
 2     data = f.readlines()
 3 print('{:*^40}'.format('抽点开始'))
 4 n = int(input('输入随机抽点人数:'))
 5 import random
 6 x = []
 7 sum1 = 0
 8 x2 = ''
 9 while n != 0:
10     counts = 0
11     while counts < n:
12         new = random.randint(0, len(data) - 1)
13         if new in x:
14             new = random.randint(0, len(data) - 1)
15         else:
16             counts +=1
17             x.append(new)
18     for i in range(sum1,sum1+n):
19         print(data[x[i]])
20         x2 += data[x[i]]
21     sum1 += n
22     n = int(input('输入随机抽点人数:'))
23 
24 with open('20230602.txt','w',encoding='utf-8') as f:
25     f.writelines(x2)
26 
27 print('{:*^40}'.format('抽点结束'))
task2

 

posted @ 2023-06-05 16:28  帅气的林  阅读(19)  评论(0)    收藏  举报