实验五

任务6:

with open('data6.csv','r',encoding='gbk')as f:
     data=list(f.readlines())
  data=[i.strip('\n') for i in data ]
  
  import decimal
  decimal.getcontext().rounding='ROUND_HALF_UP'
  title=[data[0],'四舍五入后的数据']
  data_new=[]
 data_o=[]
 for i in data:
     if not i.isalpha() is True:
         data_o.append(eval(i))
 print('原始数据:')
 print(data_o)
 for i in data:
    if not i.isalpha() is True:
         data_new.append([i])

 data_=[]
 for i in data:
     if not i.isalpha() is True:
         i=eval(i)
         if i-int(i)>=0.5:
             i=int(i)+1
            data_new[index].append(str(i))
            data_.append(i)
         else:
             i=int(i)
             data_new[index].append(str(i))
             data_.append(i)
 print('四舍五入后的数据:')
 print(data_)
 import csv
 with open('data6_processed.csv','w',encoding='gbk',newline='') as f :
     f_writer=csv.writer(f)
     f_writer.writerow(title)
     f_writer.writerows(data_new)

运行结果:

 

 

任务7:

with open('data7.csv','r',encoding = 'gbk') as f:
    data = f.readlines()
data_t = ['学号','姓名','专业','分数']
data1 = [i.strip('\n').split(',') for i in data]
data1.remove(data1[0])

data2=sorted(data1,key=lambda x:(x[2],-int(x[3])))
with open('data7_processed.csv','w',encoding = 'gbk') as f:
    f.write(','.join(data_t) + '\n')
    for item in data2:
        f.write(','.join(item) + '\n')

print(f'{"学号":10s}{"姓名":10s}{"专业":10s}{"分数":10s}')
for a,b,c,d in data2:
    print('{:<10s}{:<10s}{:<10s}{:<10}'.format(a,b,c,d))

运行结果:

 

 

任务八:

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)

运行结果:

 

 任务九:

import datetime


def is_valid(x):
    if len(x) == 18 and x[:-1].isdigit() and (x[-1].isdigit() or x[-1] == 'X'):
        return True
    else:
        return False


with open('data9_id.txt', 'r', encoding='utf-8') as f:
    data0 = f.readlines()
    title = data0.pop(0)

data0 = [i.strip('\n').split(',') for i in data0]

data1 = []
for i in data0:
    if is_valid(i[1]):
        data1.append(i)
print(data1)

t = datetime.datetime.now()
y = t.strftime('%Y%m%d')
for i in data1:
    age = str(int(y)-int(i[1][6:14]))
    i.append(age[:2])
    i[1] = i[1][6:10] + '-' + i[1][10:12] + '-' + i[1][12:14]
data2 = sorted(data1, key=lambda x: -int(x[2]))

print('姓名, 出生日期, 年龄')
for i in data2:
    print(', '.join(i))

运行结果:

 

任务10-1:

import random
import datetime

with open('data10_stu.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()

data0 = [i.strip('\n').split('\t') for i in data]
n = eval(input('输入随机抽点人数:'))
data1 = random.sample(data0, n)

for i in data1:
    print('  '.join(i))

t = datetime.datetime.now()
title = t.strftime('%Y%m%d')

with open(f'{title}.txt', 'w', encoding='utf-8') as f:
    for i in data1:
        f.write(f'{i[0]}\t{i[1]:6s}\t{i[2]:10s}\n')

运行结果:

 

10-2:

import datetime
t = datetime.datetime.now()
filename = t.strftime('%Y%m%d') + '.txt'
start='抽取开始'
print(start.center(50,'*'))
with open('data10_stu.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()

def random_selection(n):
    import random
    demo = random.sample(data, n)
    return demo
selection=set()
numbers=[]

while True:
    n = eval(input('输入随机抽点人数:'))
    if n != 0:
        x=random_selection(n)
        for i in x:
            print(i)
            data.remove(i)
            with open(filename,'a',encoding='utf-8') as f :
                f.writelines(i)
    else:
        print('抽取结束'.center(50,'*'))
        break

运行结果:

 

posted @ 2023-06-07 09:37  吃花椒de猫  阅读(30)  评论(0)    收藏  举报