实验五
实验任务六
with open('data6.csv','r',encoding = 'gbk') as f:
old_data = f.read().split('\n')
del old_data[0]
new_data = []
for i in range(len(old_data)):
if eval(old_data[i]) + float(0.5) >= int(eval(old_data[i])) + 1:
new_data.append(str(int(eval(old_data[i]))+1))
else:
new_data.append(str(int(eval(old_data[i]))))
title = ['原始数据','四舍五入后数据']
data = []
for i in range(len(old_data)):
data.append([old_data[i],new_data[i]])
with open('data6.csv','w',encoding = 'gbk') as f:
f.write(','.join(title) + '\n')
for i in data:
f.write(','.join(i) + '\n')
print('原始数据:')
print(old_data)
print('四舍五入后数据:')
print(new_data)
运行结果截图


实验任务七
with open('data7.csv','r',encoding='gbk')as f:
title=[f.readline()]
data=f.readlines()
def getscore(ls):
return ls[len(ls)-1]
data=[line.strip('\n').split(',')for line in data]
data.sort(key=lambda x:(x[2],-int(x[3])))
with open('data7_processed.csv', 'w', encoding = 'gbk') as f:
f.write(','.join(title))
for item in data:
f.write(','.join(item) + '\n')
title=title[0].strip('\n').split(',')
print('{:<10}'.format(title[0]),'{:<10}'.format(title[1]),'{:<10}'.format(title[2]),'{:<15}'.format(title[3]))
for i in data:
print('{:<10}'.format(i[0]), '{:<10}'.format(i[1]), '{:<10}'.format(i[2]), '{:<10}'.format(i[3]))
运行结果截图


实验任务八
with open('hamlet.txt','r',encoding='utf-8')as f:
data=f.readlines()
print('行数:',len(data))
x=''
for line in data:
x+=line
alpha=0
b=0
for i in x:
if i.isalpha():
alpha+=1
else:
b+=1
word=len(x.split())
print('字符数:',alpha+b)
print('单词数:',word)
print('空格数:',x.count(' '))
data = [line.strip('\n').split(',') for line in data]
with open('hamlet_with_line_number','w',encoding='utf-8') as f:
for i,j in enumerate(data,start=1):
j=j[0]
f.write("{}{}{}".format(i,' ',j)+'\n')
运行结果截图


实验任务九
def is_valid(sfz):
if len(sfz) != 18:
return False
elif (sfz[:-1].isnumeric() and sfz[-1] == 'X') or sfz.isnumeric():
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
import datetime
t = datetime.datetime.now()
filename = t.strftime('%Y%m%d') + '.txt'
n=eval(input('输入随机抽取人数:'))
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
x=random_selection(n)
for i in x :
print(i)
运行结果截图

task10_2
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('抽点结束'))
运行结果


浙公网安备 33010602011771号