task6
1 with open('data6.csv','r',encoding='gbk') as f: 2 data1 = f.read().split('\n') 3 del data1[0] 4 for i in range(len(data1)): 5 data1[i] = eval(data1[i]) 6 data1[i] = float(data1[i]) 7 print('原始数据:') 8 print(data1) 9 data2 = [] 10 for i in range(len(data1)): 11 data2.append(int(data1[i]+0.5)) 12 print('四舍五入后数据:') 13 print(data2) 14 for i in range(len(data1)): 15 data1[i] = str(data1[i]) 16 for i in range(len(data1)): 17 data2[i] = str(data2[i]) 18 title = ['原始数据','四舍五入后数据'] 19 info = [] 20 for i in range(len(data1)): 21 info.append([data1[i],data2[i]]) 22 with open('data6_processed.csv','w',encoding='utf-8') as f: 23 f.write(','.join(title)+'\n') 24 for item in info: 25 f.write(','.join(item)+'\n')
task7
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='utf-8') 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]))
task8
lines = 0 words = 0 sum1 = 0 space = 0 with open('hamlet.txt','r',encoding='utf-8') as f: for line in f: word = line.split() lines += 1 words += len(word) sum1 += len(line) for i in line: if i == ' ': space += 1 else: pass print('hamlet.txt粗滤统计:') print(f'行数:{lines}') print(f'单词数:{words}') print(f'字符数:{sum1}') print(f'空格数:{space}') with open('hamlet.txt','r',encoding = 'utf-8') as f: text = f.readlines() for i in range(len(text)): text[i] = str(i+1) + ' ' + text[i] with open('hamlet_with_line_number.txt','w',encoding = 'utf-8') as f: f.writelines(text)
task9
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[0],end=',') 28 print(f'{i[1][:4]}-{i[1][4:6]}-{i[1][6:8]}',end=',') 29 print(i[2])
task10
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)
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('抽点结束'))