列表练习函数版

coding:utf-8

import os
函数的第二个作用:实现模块化编程。可以将一个完整的逻辑,按照不同的功能划分块,每一块都可以使用一个函数进行该块逻辑的封装。

先声明一个外层的大列表,用于保存多个小列表,而每一个小列表代表着一个学员的所有信息。

all_student_list = []

[[s_name, s_age, s_weight, s_sex], [s_name, s_age, s_weight, s_sex], [s_name, s_age, s_weight, s_sex]]

定义添加学员信息的函数

def add_student():
    # 获取学员相关信息
    s_name = raw_input('学员姓名:')
    s_age = raw_input('学员年龄:')
    s_weight = raw_input('学员体重:')
    s_sex = raw_input('学员性别:')

    # 将获取的学员所有信息,存入一个列表中
    info_list = [s_name, s_age, s_weight, s_sex]
    # 再将info_list列表,存入外层的大列表all_student_list中,形成列表的嵌套关系。
    all_student_list.append(info_list)

    print '\n学员信息添加完成!\n'

定义查询学员信息的函数

def select_all_student():
    # 直接遍历最外层的大列表all_student_list即可。
    for x in xrange(0,len(all_student_list)):
        # 以x为索引,从all_student_list中取出学员信息小列表
        student_list = all_student_list[x]
        # 再从student_list小列表中,读取每一个学员的信息
        s_name = student_list[0]
        s_age = student_list[1]
        s_weight = student_list[2]
        s_sex = student_list[3]

        print x+1,': ',s_name,s_age,s_weight,s_sex

定义修改学员信息的函数

def update_student_info():
    # 修改前先列出所有学员信息,方便查找
    select_all_student()

    select_number = input('请输入要修改学员的编号:')
    # 检测编号
    while select_number < 1 or select_number > len(all_student_list):
        select_number = input('编号错误,请重新输入要修改学员的编号:')
    # 根据输入的编号作为索引,从外层的大列表中取出对应的小列表
    student_list = all_student_list[select_number-1]

    rename = raw_input('请输入新的姓名(%s):'%student_list[0])
    reage = raw_input('请输入新的年龄(%s):'%student_list[1])
    reweight = raw_input('请输入新的体重(%s):'%student_list[2])
    resex = raw_input('请输入新的性别(%s):'%student_list[3])

    # 执行修改
    student_list[0] = rename
    student_list[1] = reage
    student_list[2] = reweight
    student_list[3] = resex

    print '\n修改学员信息成功!\n'

定义删除学员信息的函数

def delete_student_info():
    print '1.根据编号删除学员信息'
    print '2.删除所有学员信息'

    select_number = input('请输入操作:')
    while select_number != 1 and select_number != 2:
        select_number = input('操作错误,请重新输入操作:')
    if select_number == 1:
        # 在根据编号删除信息前,先查询所有的学员信息。
        select_all_student()
        number = input('请输入要删除学员编号:')
        if len(all_student_list) == 0:
            print '数据为0条记录!'
        else:
            while select_number < 1 or select_number > len(all_student_list):
                select_number = input('编号错误,请重新输入要修改学员的编号:')
            del all_student_list[number-1]
            print '\n数据删除成功!\n'
    else:
        if len(all_student_list) == 0:
            print '数据为0条记录!'
        else:
            # 删除所有学员信息
            while len(all_student_list):
                del all_student_list[0]
            print '\n数据删除成功!\n'

定义写入学员信息到本地的函数

def save_data():
    # 打开文件
    file_test = open('student.txt','w')
    for x in xrange(0,len(all_student_list)):
        # 以x为索引,从all_student_list中取出学员信息小列表
        student_list = all_student_list[x]
        for y in xrange(0,len(student_list)):
            # y: 0 1 2 3按顺序取四个值
            # 再以y为索引,从小列表中取出每一个数据
            data = student_list[y]
            # 最后一个数据sex性别写入成功之后,直接添加一个换行符\n即可。但是第一个数据/第二个数据/第三个数据之间需要加空格。
            if y == (len(student_list)-1):
                file_test.write(data + '\n')
            else:
                file_test.write(data + '  ')

    # 关闭文件
    file_test.close()

读取本地数据的函数

def read_data():
    if os.path.exists('student.txt'):
        # 打开文件
        file_test = open('student.txt','r')
        data_list = file_test.readlines()
        for data in data_list:
            # 将data_list中的所有字符串遍历出来,进行处理。
            # ['张三  30  87  男']
            result = data.strip('\n')

            # 再以两个连续的空格,分割字符串
            result = result.split('  ')
            # result是一个列表,里面有四个元素,直接将result小列表保存到all_student_list这个大列表中即可。
            all_student_list.append(result)
        # 关闭文件
        file_test.close()

read_data()
while True:
    print '''
    1.添加学员
    2.修改学员
    3.查询学员
    4.删除学员
    0.退出
    '''
    select_number = input('请选择操作:')
    while select_number < 0 or select_number > 4:
        select_number = input('操作错误,请重新选择操作:')
    if select_number == 1:
        add_student()
        save_data()
    elif select_number == 2:
        update_student_info()
        save_data()
    elif select_number == 3:
        select_all_student()
    elif select_number == 4:
        delete_student_info()
        save_data()
    else:
        break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值