综合实验
1、编程实现:
(1)定义函数groupof():从10位人员中随机抽取3个人员组成一个合唱小组,返回由些3个人员编号组成的列表。
(2)某班级有60位同学,每位同学有一个1-60之间的唯一的人员编号。60位同学平均分为6个小分队,从6个小分队中随机选取3位同学组成一个合唱队,打印出合唱队成员的编号。
2、新建一个文本文件score.csv,用来保存3名接龙成员的核酸检测结果信息,内容如下:
编号,姓名,结果
01,ZHANG, negative
02,LI, positive
03,WANG,no
以上各数据均使用英文逗号分隔。请编写程序读取该文件内容,并统计各种检测结果的人数和姓名列表。
3、编写实现核酸检测信息管理系统,其具备以下功能:
(1)实时地将更新后的核酸检测信息保存到磁盘文件中;
(2)添加核酸检测结果信息
(3)修改和删除酸检测结果信息
(4)查询酸检测结果信息
(5)统计酸检测结果信息
实现的界面要求如下:
酸检测信息管理系统
1:录入核酸检测结果信息
2:查找核酸检测结果信息
3:删除核酸检测结果信息
4:修改核酸检测结果信息
5:统计核酸检测结果
6:退出系统
请输入您要使用的功能对应的序号:
1.题目一
"""
题目一
"""
import random
def groupof(n):
"""
功能:获取一个列表
:param n: 传入参数
:return: 返回一个长度为三的列表
"""
return random.sample(range(n, n + 10), 3)
# print(groupof(1))
number_list = []
for i in range(6):
number_list.append(groupof(i * 10 + 1))
# print(number_list)
cnt = 1
for i in number_list:
print(f'第{cnt}组成员编号:{i}')
cnt += 1
2.需要按照题目要求 提前准备一个文件夹,写入数据
"""
读取打印数据
"""
f = open(file='score.csv', mode='r', encoding='utf-8')
data_lines = f.readlines()
negative_num = []
positive_num = []
no_num = []
for i in data_lines:
line_list = i.strip().split(',')
if line_list[2] == 'negative':
negative_num.append(line_list[1])
elif line_list[2] == 'positive':
positive_num.append(line_list[1])
elif line_list[2] == 'no':
no_num.append(line_list[1])
print(f'negative人数有:{len(negative_num)}人\n分别为:{negative_num}')
print(f'positive人数有:{len(positive_num)}人\n分别为:{positive_num}')
print(f'no人数有:{len(no_num)}人\n分别为:{no_num}')
f.close()
下面展示一些 内联代码片
。
3.这题写的这个代码还可以在优化,当时在算是在考试,有时间限制,代码实现还是有很多考虑不足的地方,换一个全局变量保存数据会更好,而不是每次都去读写文件,再开始是调用一个方法去读取数据放在一个列表,退出时将列表中的数据在重新写入文件
menu = """
*************酸检测信息管理系统*************
1:录入核酸检测结果信息
2:查找核酸检测结果信息
3:删除核酸检测结果信息
4:修改核酸检测结果信息
5:统计核酸检测结果
6:退出系统
**************************************
"""
def add_person_info():
# print('add_person_info')
user_id = input('身份证号:')
user_name = input('用户名:')
sex = input('性别:')
age = input('年龄:')
result = input('检测结果:')
tel = input('电话:')
address = input('地址:')
line = f'{user_id},{user_name},{sex},{age},{result},{tel},{address}\n'
with open(file='save.txt', mode='a', encoding='utf-8') as f:
f.write(line)
print('保存成功')
def search_person_info():
# print('search_person_info')
id_name = input('请输入您要查找的id或姓名:')
with open(file='save.txt', mode='r', encoding='utf-8') as f:
data_lines = f.readlines()
for i in data_lines:
line_list = i.strip().split(',')
if id_name == line_list[0] or id_name == line_list[1]:
print(
f'身份证号:{line_list[0]} 姓名:{line_list[1]} 性别:{line_list[2]}'
f' 年龄:{line_list[3]} 检测结果:{line_list[4]} 电话:{line_list[5]} 地址:{line_list[6]}')
break
def delete_person_info():
# print('delete_person_info')
id_name = input('请输入您要删除的id或姓名')
data_lines = None
cnt = 0
with open(file='save.txt', mode='r', encoding='utf-8') as f:
data_lines = f.readlines()
for i in data_lines:
line_list = i.strip().split(',')
if id_name == line_list[0] or id_name == line_list[1]:
break
cnt += 1
# print(cnt)
data_lines.pop(cnt)
with open(file='save.txt', mode='w', encoding='utf-8') as f:
print('删除成功!')
f.writelines(data_lines)
def update_person_info():
# print('update_person_info')
id_name = input('请输入您要修改的id或姓名:(身份证号、姓名和性别不可修改)')
data_lines = None
cnt = 0
new_line = []
with open(file='save.txt', mode='r', encoding='utf-8') as f:
data_lines = f.readlines()
for i in data_lines:
line_list = i.strip().split(',')
if id_name == line_list[0] or id_name == line_list[1]:
print('找到了')
print(
f'身份证号:{line_list[0]} 姓名:{line_list[1]} 性别:{line_list[2]}'
f' 年龄:{line_list[3]} 检测结果:{line_list[4]} 电话:{line_list[5]} 地址:{line_list[6]}')
new_age = input('请输入要修改的年龄:')
new_result = input('请输入要修改的检测结果:')
new_tel = input('请输入要修改的电话:')
new_address = input('请输入要修改的年龄地址:')
new_line = [line_list[0], line_list[1], line_list[2], new_age, new_result, new_tel, new_address]
break
cnt += 1
data_lines[cnt] = new_line
with open(file='save.txt', mode='w', encoding='utf-8') as f:
f.writelines(data_lines)
def person_info():
# print('person_info')
with open(file='save.txt', mode='r', encoding='utf-8') as f:
data_lines = f.readlines()
for i in data_lines:
line_list = i.strip().split(',')
print(
f'身份证号:{line_list[0]} 姓名:{line_list[1]} 性别:{line_list[2]}'
f' 年龄:{line_list[3]} 检测结果:{line_list[4]} 电话:{line_list[5]} 地址:{line_list[6]}')
while 1:
print(menu)
num = int(input('请输入:'))
if num == 1:
add_person_info()
elif num == 2:
search_person_info()
elif num == 3:
delete_person_info()
elif num == 4:
update_person_info()
elif num == 5:
person_info()
elif num == 6:
break
else:
print('输入错误!')