zoukankan      html  css  js  c++  java
  • 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)
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    Django模板系统
    __new__与__init__的区别
    django中models field详解
    快速入门mysql
    jq2
    jq
    前端 js 部分
    前端 js
    前端 css
    前端 table form
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/15043782.html
Copyright © 2011-2022 走看看