遞迴函式 演算法和生成式

2022-09-10 09:57:14 字數 1473 閱讀 3462

遞迴指的是函式在執行過程中直接或間接的呼叫了自身。

遞迴的特點有兩個。

1.遞推:

指一層層往下推導答案(每次的推導相較前一次難度有所下降)。

2.回溯:

依據最後的結論倒推出最初需要的答案。

函式的遞迴一定要有結束條件,不然就會報錯。

為防止無限遞迴的情況,官網表示python預設的最大遞迴深度為1000次。(由於電腦效能等原因也可能是998、997次)

可以通過sys方法來檢視和設定最大遞迴深度

演算法指的是解決問題的高效方法。二分法屬於入門級的演算法。

當想要在一堆的有序的數字中找到某個數字時,可以使用二分法來有效的達成目的。

二分法的原理:

找到這堆數字的中間的數,將它與要找的數進行大小的比較,如果較大,則在較大的一半中繼續切分。

如果較小則在較小的一半中切分,直到找到要找的數。

二分法的缺陷:

只能在有序的資料集中使用,並且如果要找的數就在開頭,反而不如乙個個數的笨辦法有效。

三元表示式是一種**的簡便寫法,當功能需求只是二選一時推薦使用三元表示式。

三元表示式格式:

條件達成採用的值if需要達成的條件else條件不達成時採用的值

三元表示式可以進行巢狀,但不推薦這種形式。

因為使用這種形式是為了**的簡潔,進行巢狀反而違背了這種目的。

列表生成式是一種簡便的生成列表的語法,它的作用是快速的生成列表。

如果想只通過乙個列表就生成字典,可以借助enumerate方法(列舉)。

enumerate的作用是返回兩個值,乙個是數字,相當於列表的索引,另乙個是列表的元素。

通過enumerate方法可以將索引值當做k值,元素當做v值來快速生成字典。

匿名函式指的是沒有函式名的函式。

語法格式為:

lambda 形參:返回值。

匿名函式 列表生成式 字典生成式 遞迴

語法 語法格式為 lambda 引數1,引數2,引數 引數可以省略 邏輯表示式 即結果,不可省略 引數的範圍 可省略 lambda 引數 結果 lambda x,y x y 函式輸入是x和y,輸出是它們的積x y lambda none 函式沒有輸入引數,輸出是none lambda args su...

遞迴和生成器函式

如果函式包含了對其自身的呼叫,該函式就是遞迴。遞迴廣泛應用於語言識別和使用遞迴函式的數學應用中。例如 斐波那契數列和求階乘等。下面就上面兩種使用舉例 斐波那契數列 in 12 def fib n if n 0 return 1 if n 1 return 1 return fib n 2 fib n...

三元表示式 生成式和函式遞迴

x 1 y 2res x if x y else y print res res 111111 if egon egon else 2222222222 print res 三元表示式可直接做返回值 def func x,y if x y return x else return y def fun...