实验5

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')

 

posted @ 2023-06-06 18:33  苗志恒  阅读(20)  评论(0)    收藏  举报