Python-函数-嵌套递归函数


#
调用嵌套 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("

Recursion 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班学生管理系统-----------------------------

 请选择系统功能:
0:显示所有学员信息
1:添加一个学员信息
2:删除一个学员信息
3:修改一个学员信息
4:查询一个学员信息

'''


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)