Python实验课5

实验任务六

实验源码:

 1 with open('data6.csv','r',encoding='gbk') as f:
 2     data = f.readlines()
 3 data1=[str(eval(data[i])) for i in range(1,len(data))]
 4 data2=[str(int(eval(data[i])+0.5)) for i in range(1,len(data))]
 5 info=[[data1[i],data2[i]] for i in range(len(data1)) ]
 6 title = ['原始数据','四舍五入后数据']
 7 
 8 with open('data6_processed.csv', 'w', encoding = 'gbk') as f:
 9     f.write(','.join(title) + '\n') # 写入标题行
10     for item in info:
11         f.write(','.join(item) + '\n')
12 ls1 = []
13 ls2 = []
14 with open('data6_processed.csv', 'r', encoding = 'gbk') as f:
15     data3=f.readlines()
16 for i in range(1,len(data3)):
17     data4=data3[i].split(',')
18     ls1.append(data4[0].strip())
19     ls2.append(data4[1].strip())
20 print('原始数据')
21 print(ls1)
22 print('四舍五入后数据')
23 print(ls2)

1 with open('data7.csv','r',encoding='gbk') as f:
 2     data1 = f.read().split('\n')
 3 del data1[0]
 4 lsta = []
 5 lstm = []
 6 for i in data1:
 7     lst1 = i.split(',')
 8     if lst1[2] == 'Acting':
 9         lsta.append(lst1)
10     else:lstm.append(lst1)
11 lstm.sort(key=lambda x:x[-1],reverse = True)
12 lsta.sort(key=lambda x:x[-1],reverse = True)
13 info = lsta + lstm
14 title = ['学号','姓名','专业','分数']
15 with open('data7_processed.csv','w',encoding='gbk') as f:
16     f.write(','.join(title)+'\n')
17     for items in info:
18         f.write(','.join(items)+'\n')
19 print('{:<10}'.format(title[0]),'{:<10}'.format(title[1]),'{:<10}'.format(title[2]),'{:<15}'.format(title[3]))
20 for i in info:
21     print('{:<10}'.format(i[0]),'{:<10}'.format(i[1]),'{:<10}'.format(i[2]),'{:<15}'.format(i[3]))

实验任务八:

实验源码:

 1 lines = 0
 2 words = 0
 3 sum1 = 0
 4 space = 0
 5 with open('hamlet.txt','r',encoding='utf-8') as f:
 6     for line in f:
 7         word = line.split()
 8         lines += 1
 9         words += len(word)
10         sum1 += len(line)
11         for i in line:
12             if i == ' ':
13                 space += 1
14             else:
15                 pass
16 print('hamlet.txt粗滤统计:')
17 print(f'行数:{lines}')
18 print(f'单词数:{words}')
19 print(f'字符数:{sum1}')
20 print(f'空格数:{space}')
21  
22 with open('hamlet.txt','r',encoding = 'utf-8') as f:
23     text = f.readlines()
24  
25 for i in range(len(text)):
26     text[i] = str(i+1) + ' ' + text[i]
27  
28 with open('hamlet_with_line_number.txt','w',encoding = 'utf-8') as f:
29     f.writelines(text)

 1 def is_valid(sfz):
 2     if len(sfz) != 18:
 3         return False
 4     elif (sfz[:-1].isnumeric() and sfz[-1] == 'X') or sfz.isnumeric():
 5         return True
 6     else:return False
 7  
 8  
 9 with open('data9_id.txt','r',encoding='utf-8') as f:
10     data = f.read().split('\n')
11 del data[0]
12 data2 = []
13 data3 =[]
14 print('姓名,出生日期,年龄')
15 for i in data:
16     lst = i.split(',')
17     data2.append(lst)
18 lst2 = []
19 for i in data2:
20     if is_valid(i[1]) == True:
21         name = i[0]
22         btd = i[1][6:14]
23         age = str(2023 - int(i[1][6:10]))
24         lst2.append([name,btd,age])
25 lst2.sort(key=lambda x:x[2],reverse=True)
26 for i in lst2:
27     print(i[

实验任务十

task_1

 1 import datetime
 2 t = datetime.datetime.now()
 3 filename = t.strftime('%Y%m%d') + '.txt'
 4 n=eval(input('输入随机抽取人数:'))
 5 with open('data10_stu.txt', 'r', encoding = 'utf-8') as f:
 6     data=f.readlines()
 7 
 8 
 9 def random_selection(n):
10     import random
11     demo = random.sample(data, n)
12     return demo
13 x=random_selection(n)
14 for i in x :
15     print(i)
16 
17 
18 with open(filename,'w',encoding='utf-8')as f:
19     f.writelines(x)

task_2

实验源码:

 
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-05 18:47  宁好好  阅读(48)  评论(0)    收藏  举报