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)
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/15043782.html
Copyright © 2011-2022 走看看