#调用嵌套 def a(): print("aaaaa") def b(): print("bbbbb") a() b() #嵌套定义 def c(): print("cccc") def d(): print("ddddd") #缺点,外层函数不能调用,一般不用 d() c() """ 函数递归:定义的函数能够调用自身 自己调用自己 相互调用 注:不要出现以下情况,否则出现死循环 """ #自己调用自己 def a1(): print("hello ,a1") #a1() #a1() #返回递归错误,出现死循环,所以函数体内必须要有条件约束 #相互调用 def b1(): print("hello,b1") c1() def c1(): print("hello,c1") b1() b1() #返回递归错误,出现死循环
示例递归函数一:
def tri_recursion(k): if(k>0): result = k+tri_recursion(k-1) print(result) else: result = 0 return result print("\n\nRecursion Example Results") tri_recursion(6) """ #题目解析: tri_resursion(6), result6 = 6 + tri_recursion(5); tri_resursion(5), result5 = 5 + tri_resursion(4); tri_resursion(4), result4 = 4 + tri_resursion(3) tri_resursion(3), result3 = 3 + tri_resursion(2) tri_resursion(2), result2 = 2 + tri_resursion(1) tri_resursion(1), result1 = 1 + tri_resursion(0) #返回条件k 不是大于0 时,result= 0,即tri_resursion = 0,即最后一组result1 = 1 """
示例递归函数二:
""" # 实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。 # 要求1:使用一个list用于保存学生的姓名。 # 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit代表退出学生管理系统。 # 每一个功能定义一个自定义函数。界面如下: # 系统界面如下: -----------------------欢迎进入T666班学生管理系统----------------------------- 请选择系统功能: 0:显示所有学员信息 1:添加一个学员信息 2:删除一个学员信息 3:修改一个学员信息 4:查询一个学员信息 exit:退出学生管理系统 """ #递归示例函数一: welmesg = ''' -----------------------欢迎进入T666班学生管理系统-----------------------------\n 请选择系统功能: 0:显示所有学员信息 1:添加一个学员信息 2:删除一个学员信息 3:修改一个学员信息 4:查询一个学员信息\n ''' def get_info(): print(mylist) def add_info(): #添加多个学员 names = input("请输入新学员的姓名: ") if len(names) > 1: for name in names.split(','): mylist.append(name) else: mylist.append(names) print(mylist) # def add_info(): 添加单个学员 # mylist.append(input("请输入新学员的姓名: ")) # print(mylist) def del_info(): delname = input("请输入删除人的姓名: ") if mylist.count(delname) > 0: mylist.remove(delname) print(mylist) else: print("T666班未找到该学员") def update_info(): old_name = input("请输入需要修改学员的姓名: ") new_name = input("请输入需要修改后的学员姓名: ") if mylist.count(old_name) > 0: mylist[mylist.index(old_name)] = new_name print(mylist) else: print("T666班未找到该学员") def select_info(): select_name = input("请输入要查询的学员姓名: ") if mylist.count(select_name) > 0: print(select_name,'在座位号'+ str(mylist.index(select_name))) else: print("T666班未找到该学员") def caozuo(num,mylist): if num == 'exit': print("退出学生管理系统") else: if num == '0': get_info() elif num == '1': add_info() elif num == '2': del_info() elif num == '3': update_info() elif num == '4': select_info() else: print("输入有误,请重新输入") caozuo(input(welmesg),mylist) mylist = ["apple","sherry","vv","eason"] caozuo(input(welmesg),mylist)