python测试10.28

综合实验
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('输入错误!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多喝热水,重启试试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值