python函数

需掌握知识点:

函数定义

函数调用

嵌套函数

全局变量,全局变量不可以修改,可以用g_a

局部变量

函数例子:编写学生管理系统

使用自定义函数,完成对程序的模块化

学生信息至少包括:姓名,年龄, 学号, 除此以外,可以适当添加

必须完成的功能:添加,删除,修改,查询,退出

 1. 把整体框架搞清楚先搭建框架不要一开始就考虑函数

经过分析应该把显示提示的代码放到一个函数中
def showInfo():
    print("-"*30)
    print("    学生管理系统  v1.0     ")
    print(" 1:添加学生的信息")
    print(" 2:删除学生的信息")
    print(" 3.修改学生的信息")
    print(" 4.查询学生信息")
    print(" 5.遍历所有的学生信息")
    print(" 6.退出系统")
    print("-"*30)
#功能1,添加学生
def addNewStu(studentsTemp):
    # 只要有一个字典,并且这个字典中已经准备好数据,就可以进行添加
    name = input("学生姓名:")
    age = input("学生年龄:")
    num = input("学生学号:")
    stuInfo = {'name': name, 'id': num, 'age': age}
    studentsTemp.append(stuInfo)

#功能2,删除学生
def delStuInfo(students):
    delNum = int(input("请输入要删除的序号:"))
    #students=[{}]
    #del students[0]
    del students[delNum]
# 定义列表,存储多个学生的信息
students = []

#功能3,修改学生信息
def changeStu(students):
    changeNum = int(input("请输入要修改的序号:"))
    print("=======================================")
    students[changeNum]['name'] = input("输入想要修改的名字")
    students[changeNum]['id'] = input("输入想要修改的学号")
    students[changeNum]['age'] = input("输入想要修改的年龄")

#功能4,查询学生信息
def findStu(students):
    #findNum = int(input("请输入要查询的学生学号:"))
    findNum = input("请输入要查询的学生学号:")
    #print("=======================================")
    for stu in students:
        #print(stu)
        print("id       姓名       年龄")
        if stu['id'] == findNum:
            print(stu['name'], stu['id'], stu['age'])
        else:
            continue

while True:
    # 1.0 先把功能列表进行显示给用户
    showInfo()
    # 功能1,添加学生信息,姓名,年龄,学号

    # 1.1 提示用户选择功能
    # 1.2 获取用户选择的功能
    key = int(input("请选择功能(序号):"))

    # 1.3 根据用户选择,执行相应功能
    if key == 1:
        addNewStu(students)
    #删除,可以选用序号
    elif key == 2:
        delStuInfo(students)
    elif key == 3:
        changeStu(students)
    elif key == 4:
        findStu(students)
    elif key == 5:

        print("*" * 20)
        print("遍历所有学生人数。。。")
        print("id       姓名       年龄")
        for temp in students:
            print(temp['name'], temp['id'], temp['age'])

    elif key == 6:
        quitConfirm = input("亲,真的要退出吗(yes or no)")
        if quitConfirm == 'yes':
            break
    else:
        print("输入有误,重新输入")

运行结果:

D:\1a\python3.6.1\python.exe E:/python_workspace/python_notes/example7-studentsSys.py
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):1
学生姓名:1
学生年龄:1
学生学号:1
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):1
学生姓名:2
学生年龄:2
学生学号:2
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):4
请输入要查询的学生学号:1
id       姓名       年龄
1 1 1
id       姓名       年龄
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):5
********************
遍历所有学生人数。。。
id       姓名       年龄
1 1 1
2 2 2
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):4
请输入要查询的学生学号:2
id       姓名       年龄
id       姓名       年龄
2 2 2
------------------------------
    学生管理系统  v1.0     
 1:添加学生的信息
 2:删除学生的信息
 3.修改学生的信息
 4.查询学生信息
 5.遍历所有的学生信息
 6.退出系统
------------------------------
请选择功能(序号):

函数返回多个值:

如果一个函数有多个return,程序只要执行任何一个return,剩下的return都不会被执行,return只要呗调用了,就会立刻结束当前的函数,类似于break,直接结束,只不过结束的是函数 返回的必须顺序保持一致

不定长参数:

eg: def addAll(a, b),带的是可传可不传 原来说,a += a 等价于 a = a+a(a是列表),其实不一样,a+=a是在数据上进行修改,而a=a+a是先定义一个变量然后再进行修改

编写程序的思路以及程序的整体框架:

  1. 做什么
  2. 做什么
  3. 做什么
  1. 做什么
  2. 最后的效果 可以先前往后推,或者从后往前推。或者同时进行

递归例子-求阶乘:

#递归实现阶乘例子

def factorial(num):
    if num > 1:
        result = num * factorial(num-1)
    elif num == 1:
        result = 1
    return result

if __name__ == "__main__":
    print(factorial(4))

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦