美文网首页
day9-总结

day9-总结

作者: RurouniKenshin | 来源:发表于2018-07-24 17:06 被阅读93次

    未完成的学生信息管理系统(开发思路)

    # 声明所有的key值
    key_all_student = 'students'
    key_name = 'student_name'
    key_age = 'age'
    key_tel = 'tel'
    key_id = 'id'
    # 系统容器
    system_info = {}
    # 当前已经添加过的学生人数
    number = 0
    # 系统入口
    while True:
        # ========系统主页============
        print('='*100)
        print('欢迎进入xxx学生管理系统'.center(100,' '))
        print('1.添加学生'.center(100,' '))
        print('2.查看信息'.center(100,' '))
        print('3.修改信息'.center(100,' '))
        print('4.删除信息'.center(100,' '))
        print('0.退出'.center(100,' '))
        print('='*100)
        input_value = input('请选择:')
        # ========退出系统===========
        if input_value == '0':
            break
        # ========添加学生===========
        if input_value == '1':
            while True:
                print('-----------添加学生------------')
                # 输入信息
                add_name = input('name:')
                add_age = input('age:')
                add_tel = input('tel:')
                # 自动产生学号
                number += 1
                add_id = 'py1805'+str(number).rjust(3,'0')
                # 创建学生(一个学生就是一个字典)
                add_student = {key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
                # 获取存学生的容器
                all_students = system_info.get(key_all_student)
                if not all_students:
                    all_students = []
                # 添加学生到容器中
                all_students.append(add_student)
                system_info[key_all_student] = all_students
                print('添加学生 %s 成功'% add_name)
                # 给出选择
                print('1.继续添加\n其他:返回上一层')
                add_input = input('>>>')
                if add_input != '1':
                    break
            continue
        # ========查看信息===========
        if input_value == '2':
            # =========给出选择===============
            print('----------------查看信息------------------')
            print('1.查看所有的学生信息')
            print('2.根据姓名查看学生信息')
            print('3.根据学号查看学生信息')
            print('4.返回上一层')
            find_input = input('>>>')
            # 直接回到上一层
            if find_input == '4':
                continue
            # ======拿到所有的学生=======
            all_students = system_info.get(key_all_student)
            if not all_students:
                print('系统中还没有学生!')
                continue
            # ===========查看所有==========
            if find_input == '1':
                #========系统还没有学生=======
                """
                or 和 and 的短路操作:
                    表达式1 or 表达式2:如果表达式1的值是true,那么不会执行表达式2,结果直接为true
                    表达式1 and 表达式2:如果表达式1的值是false,那么不会执行表达式2,结果直接为false
                """
                #========有学生============
                for student in all_students:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s'% \
                          (student[key_name],student[key_age],student[key_tel],student[key_id]))
    
                pass
            # ===========根据姓名===========
            elif find_input == '2':
                find_name = input('请输入要查看的学生名字:')
                flag = True # 表示是否找不到
                for student in all_students:
                    # 如果学生名字与输入的名字相同,打印其信息
                    if find_name == student[key_name]:
                        print(student)
                        flag = False
                if flag:
                    print('找不到该生信息')
    
    
    
            # ==========根据学号===========
            elif find_input == '3':
                find_id = input('请输入要查看的学生的学号:')
                flag = True
                for student in all_students:
                    if find_id == student[key_id]:
                        print(student)
                        flag = False
                        break
                if flag:
                    print('找不到该学生信息')
            continue
        # ========修改信息===========
        if input_value == '3':
            print('修改信息')
            continue
        # ========删除学生===========
        if input_value == '4':
            while True:
                print('1.按姓名删除')
                print('2.按学号删除')
                print('3.返回')
                del_input = input('>>>')
                if del_input == '3':
                    break
                all_students = system_info.get(key_all_student)
                if not all_students:
                    print('该系统没有学生')
                    break
                if del_input == '1':
                    del_name = input('输入要删除的学生姓名')
                    del_student_list = []
                    for student in all_students:
                        if del_name == student[key_name]:
                            # 保存可能要删除的学生
                            del_student_list.append(student)
                    # 先判断是否找到
                    if not del_student_list:
                        print('没有相关学生信息')
                        continue
                    # 打印所有可能需要删除的学生
                    index = 0
                    for student in del_student_list:
                        print(index,student)
                        index += 1
                    del_index = input('请选择要删除的学生的编号:')
                    del_student = del_student_list[int(del_index)]
                    # 从系统中删除
                    system_info[key_all_student].remove(del_student)
                    print('删除成功')
            continue
    

    函数

    1.什么是函数

    函数就是对实现某一特定功能的代码块的封装
    作用:封装(将功能绑定在一个函数中,想要使用这个功能的时候直接调用函数)

    2.怎么声明函数:

    def 函数名(参数列表):
    ''' 函数说明 '''
    函数体

    • def: 是python中声明函数的关键字
    • 函数说明:队函数的功能和参数以及返回值进行说明
    • 函数名: 标识符。PEP8见名知义
    • ():是固定格式
    • 参数列表:(形参列表)参数名1,参数名2,参数名3……
    • 参数的功能是用来接收从外部传到函数内部的数据
    • 函数体:实现函数功能的代码块,可能会包含一个return语句

    3.声明函数的步骤:

    a.确定函数的功能
    b.确定函数名
    c.确定参数,确定需不需要参数,需要几个参数
    d.实现函数功能
    e.确定返回值

    4.函数的调用

    函数名(实参列表)
    调用的函数一定是已经声明过的,想使用什么功能就调用对应的函数
    实参列表:实参是用来给形参赋值的
    '''

    函数的调用过程:

    1.使用实参给形参赋值
    2.执行函数体
    3.函数体执行完成后,回到函数调用的位置

    注意:
    1.函数只有在调用的时候才会执行
    2.函数调用的时候一定要保证每个形参都有值
    3.函数的调用要写到函数的声明后

    # 写一个函数,计算两个数的和
    def push(a,b):
        '''计算2个数的和并作为返回值'''
        return a+b
    print(push(1,2))
    # 练习,声明一个函数,功能是打印10个*
    def px():
        '''打印10个*'''
        print('*'*10)
    px()
    

    5.函数的参数

    • 位置参数
      传参的时候,实参按顺序给形参赋值
    def func1(a,b,c):
        print(a,b,c)
    
    func1(10,20,30)
    
    • 关键字参数
      调用函数的时候:函数名(参数 = 值)
    func1(c=30,a=10,b=20)
    

    说明:位置参数和关键字参数可以混搭

    • 参数的默认值
      python中函数声明的时候参数可以设置默认值,有默认值的参数必须放在参数列表的最后
      调用含有默认值参数的函数时,有默认值的参数可以传参也可以不传参
    def func2(a,b,c=100):
        print(a,b,c)
    func2(10,20,30)
    func2(10,20)
    
    • 参数个数不定
      函数的参数个数不确定的时候,就在声明函数的时候,形参的前面加一个*,将形参变成元组
      调用函数的时候,这个参数会将对应的实参作为元组的元素保存起来
      注意:参数个数不定,可以是形参中的一部分是不定的。个数不确定的参数要放在最后
    # 写一个函数,求多个数的和
    def func3(*number):
        sum1 = 0
        for x in number:
            sum1 += x
        return sum1
    print(func3(1,2,3,4,5,6,7,8,9,10))
    
    # 写一个函数,求多个数的和
    def func3(number1,*numbers):
        for x in numbers:
            number1 += x
        print(number1)
    
    func3(1,2,3,4,5,6,7,8,9,10)
    

    相关文章

      网友评论

          本文标题:day9-总结

          本文链接:https://www.haomeiwen.com/subject/xzwemftx.html