Python-函式-巢狀遞迴函式
阿新 • • 發佈:2021-07-22
#呼叫巢狀 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)三十六般武藝,七十二般變化,修練出個人品牌併發出光芒