实验五

实验任务六

task6.py

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.py

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

运行结果

 

 实验任务九

程序源代码

def is_valid(a):
    if len(a) != 18:
        return False
    elif (a[:-1].isnumeric() and a[-1] == 'X') or (a.isnumeric()):
        return True
    else:
         return False
with open('data9_id.txt','r') as f:
    data = f.read().split('\n')
del data[0]
data1 = []
print('姓名,出生日期,年龄')
for i in data:
    lst = i.split(',')
    data1.append(lst)
lst1 = []
import datetime
t = datetime.datetime.now().year
for i in data1:
    if is_valid(i[1]) == True:
        name = i[0]
        btd = i[1][6:14]
        age = str(int(t)-int(i[1][6:10]))
        lst1.append([name,btd,age])
lst1.sort(key=lambda x:x[2],reverse=True)
for i in lst1:
    print(i[0],end=',')
    print(f'{i[1][:4]}-{i[1][4:6]}-{i[1][6:8]}',end=',')
    print(i[2])

运行结果

 实验任务十

程序源代码

with open('data10_stu.txt','r',encoding='utf-8') as f:
    data = f.readlines()
n = int(input('输入随机抽点人数:'))
import random
x = []
x2 = ''
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(n):
    print(data[x[i]])
    x2 += data[x[i]]
with open('20230602.txt','w',encoding='utf-8') as f:
    f.writelines(x2)

运行结果

 

 程序源代码

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-07 00:15  dianziyang2002  阅读(17)  评论(0)    收藏  举报