1. 程式人生 > 實用技巧 >mybatis 獲取新增id【有傳統XML和註解】

mybatis 獲取新增id【有傳統XML和註解】

import sys
# sys.setrecursionlimit(1200)  # 修改遞迴層數限制

count = 0
def func():
     global count
     count += 1
     print(count)
     func()
     print(456)

func()


# RecursionError:遞迴錯誤
# 官網規定的遞迴的最大深度1000層:為了節省記憶體空間,不讓使用者無限使用記憶體空間
# 1.遞迴要儘量控制次數,如果需要很多層遞迴才能解決問題,不適合遞迴解決
# 2.迴圈和遞迴的關係:
        # 遞迴不是萬能的
        #
遞迴比起迴圈來說更佔用記憶體 # 你的遞迴函式 必須要停下來 count = 0 def func(): global count count += 1 print(count) if count == 3: return func() print(456) func() # 函式的呼叫 # 函式的引數 # 函式的返回值 # 一個遞迴函式要想結束,必須在函式內寫一個return,並且return的條件必須是可達到的 def func(count): count += 1 # print(count)
if count == 5: return 5 ret = func(count) return ret r = func(1) print(r)

遞迴函式相關習題:

# # 1.計算階乘  5! = 5*4*3*2*1
# # 迴圈:
# r = 1
# for i in range(5, 0, -1):
#     r *= i
# print(r)
#
# # 遞迴:
# def func(n):
#
#     if n == 1:
#         return 1
#     ret = n * func(n - 1)
#     return ret
# # # print(func(5)) # 2.os模組;檢視一個資料夾下的所有檔案,這個檔案下面還有資料夾 import os # dir_path = 'F:\Lnh_Study\lnh_01_基礎部分\lnh_14_模組的多種匯入方式' # dir_ls = os.listdir('F:\Lnh_Study\lnh_01_基礎部分\lnh_14_模組的多種匯入方式') # print(dir_ls) # # count = len(dir_ls) # def func(path, dir_ls): # global count # if count == 0: # return # for name in dir_ls: # count -= 1 # stats = os.path.isdir(path + '/'+ name) # # if stats and name != '__pycache__': # new_path = path + '/' + name # print(new_path) # new_ls = os.listdir(new_path) # print(new_ls) # func(new_path, new_ls) # # # func(dir_path, dir_ls) # 3.os模組;計算一個資料夾下所有檔案的大小,這個檔案下面還有資料夾,不能用walk # dir_path = 'F:\Lnh_Study\lnh_01_基礎部分\lnh_14_模組的多種匯入方式' # dir_ls = os.listdir(dir_path) # print(dir_ls) # def func(path, dir_ls): # file_size = 0 # for name in dir_ls: # stats = os.path.isdir(os.path.join(path, name)) # if stats: # new_path = os.path.join(path, name) # print(new_path) # new_ls = os.listdir(new_path) # print(new_ls) # ret = func(new_path, new_ls) # file_size += ret # else: # file_size += os.path.getsize(os.path.join(path, name)) # # return file_size # # ret = func(dir_path, dir_ls) # print(f'資料夾大小:{ret}位元組') # 4.計算斐波那契數列 找第100個數 # 迴圈:1 1 2 3 5 8 13 21 def func(n): a = 1 b = 1 for i in range(n): yield a a, b = b, a+b obj = func(2) print(list(obj)) # 遞迴: def func(n): n -= 1 if n == 0: return 1, 1 ret = func(n) return ret[1], (sum(ret)) ret = func(100) print(ret[0]) # 5.三級選單 可能是n級... # menu = { # '北京': { # '海淀': { # '五道口': { # 'soho': {}, # '網易': {}, # 'google': {} # }, # '中關村': { # '愛奇藝': {}, # '汽車之家': {}, # 'youku': {}, # }, # '上地': { # '百度': {}, # }, # }, # '昌平': { # '沙河': { # '老男孩': {}, # '北航': {}, # }, # '天通苑': {}, # '回龍觀': {}, # }, # '朝陽': {}, # '東城': {}, # }, # '上海': { # '閔行': { # "人民廣場": { # '炸雞店': {} # } # }, # '閘北': { # '火車戰': { # '攜程': {} # } # }, # '浦東': {}, # }, # '山東': {}, # } # # def threeLM(dic): # while True: # for k in dic: # print(k) # key = input('input>>').strip() # if key == 'b' or key == 'q': # return key # elif key in dic.keys() and dic[key]: # ret = threeLM(dic[key]) # if ret == 'q': # return 'q' # # threeLM(menu)