day9-总结

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

# 声明所有的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-总结)