task6
with open('data6.csv', 'r', encoding='gbk') as f: old_data = f.read().split('\n') del old_data[0] processed_data = [] for i in range(len(old_data)): if eval(old_data[i]) + 0.5 >= int(eval(old_data[i])) + 1: processed_data.append(str(int(eval(old_data[i])) + 1)) else: processed_data.append(str(int(eval(old_data[i])))) title = ['原始数据', '四舍五入后数据'] new = [] for i in range(len(old_data)): new.append([old_data[i], processed_data[i]]) with open('data6_processed.csv','w',encoding = 'gbk') as f: f.write(','.join(title)+'\n') for i in new: f.write(','.join(i) + '\n') print('原始数据:') print(old_data) print(f'四舍五入后数据:') print(new)
task7
with open('data7.csv','r',encoding='gbk') as f: data = f.read().split('\n') del data[0] lsta = [] lstb = [] for i in data: lst1 = i.split(',') if lst1[2] == 'Acting': lsta.append(lst1) else: lstb.append(lst1) lstb.sort(key=lambda x:x[-1],reverse = True) lsta.sort(key=lambda x:x[-1],reverse = True) info = lsta + lstb title = ['学号','姓名','专业','分数'] with open('data7_processed.csv','w',encoding='gbk') as f: f.write(','.join(title)+'\n') for items in info: f.write(','.join(items)+'\n') print('{:<10}'.format(title[0]),'{:<10}'.format(title[1]),'{:<10}'.format(title[2]),'{:<15}'.format(title[3])) for i in info: print('{:<10}'.format(i[0]),'{:<10}'.format(i[1]),'{:<10}'.format(i[2]),'{:<15}'.format(i[3]))
task8
with open('hamlet.txt', 'r+', encoding = 'utf-8') as f: data=f.read() data0_5=str(data) data1=data0_5.split("\n") data1_5=" ".join(data1) print(len(data1)) data2=data0_5.split(" ") print(len(data2)-1) print(data.count(" ")-1) print(len(data)) s=[] s.append(len(data1)) s.append(len(data2)-1) s.append(data.count(" ")-1) s.append(len(data)) b=[] for i in range(len(data1)): b.append(f"{i+1} "+data1[i]) print(b) with open('hamlet_with_line_number.txt', 'w', encoding = 'utf-8') as g: for i in range(len(b)): g.write(b[i]+"\n")
task9
def is_valid(number): if len(number) == 18: return True elif (number[0:-1] is type(int) and number[-1] == 'X') or number[0:] is type(int) : return True else: return False with open('data9_id.txt','r',encoding='utf-8') as f: data = f.read().split('\n') del data[0] data2 = [] data3 =[] print('姓名,出生日期,年龄') for i in data: lst = i.split(',') data2.append(lst) lst2 = [] for i in data2: if is_valid(i[1]) == True: name = i[0] btd = i[1][6:14] age = str(2023 - int(i[1][6:10])) lst2.append([name,btd,age]) lst2.sort(key=lambda x:x[2],reverse=True) for i in lst2: print(i[0],end=',') print(f'{i[1][:4]}-{i[1][4:6]}-{i[1][6:8]}',end=',') print(i[2])
task10_1
with open('data10_stu.txt','r',encoding='utf-8') as f: data = f.readlines() print('{:*^40}'.format('抽点开始')) n = int(input('输入随机抽点人数:')) import random x = [] sum1 = 0 x2 = '' while n != 0: counts = 0 while counts < n: new = random.randint(0, len(data) - 1) if new in x: new = random.randint(0, len(data) - 1) else: counts +=1 x.append(new) for i in range(sum1,sum1+n): print(data[x[i]]) x2 += data[x[i]] sum1 += n n = int(input('输入随机抽点人数:')) with open('20230602.txt','w',encoding='utf-8') as f: f.writelines(x2) print('{:*^40}'.format('抽点结束'))
task10_2
with open('data10_stu.txt','r',encoding = 'utf-8') as f: data = f.readlines() data1 = [i.strip('\n').split(',') for i in data] print('{:*^40}'.format('抽点开始')) n = int(input('输入随机抽点人数:')) d= [] while n!=0: import random x = list(range(len(data1))) t = random.sample(x,n) for i in t: d.append(data[i]) for j in data1[i]: print(j) n = int(input('输入随机抽点人数:')) else: print('{:*^40}'.format('抽点结束')) with open('20230605.txt','w',encoding='utf-8') as f: for i in d: f.write(''.join(i)+'\n')
标签:encoding,open,len,实验,print,data,append From: https://www.cnblogs.com/--mzh/p/17461421.html