1. 程式人生 > 其它 >Python-函式-巢狀遞迴函式

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("
\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():
    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)
三十六般武藝,七十二般變化,修練出個人品牌併發出光芒