目錄python
把代碼當成資源進行抽象編程
函數 和 對象 是代碼複用的兩種主要形式模塊化
函數:將代碼命名函數
在代碼層面創建了初步抽象spa
對象:屬性和方法設計
<a>.<b>
和 <a>.<b>()
code
在函數之上再次組織進行抽象orm
分而治之對象
緊耦合 鬆耦合blog
函數定義中調用函數自身的方式
\[ n!= \begin{cases} 1 & n=0 \\ n(n-1)! & \text{otherwise} \end{cases} \]
def fact(n): if n == 0: return 1 else: return n * fact(n - 1)
將字符串s反轉後輸出:s[::-1]
def rvs(s): if s == "": return s else: return rvs(s[1:]) + s[0]
斐波那契數列
\[ F(n)= \begin{cases} 1 & n=1 \\ 1 & n=1 \\ F(n-1)+F(n-2) & otherwise \end{cases} \]
\(F(n) = F(n-1) + F(n-2)\)
def f(n): if n == 1 or n == 2: return 1 else: return f(n - 1) + f(n - 2)
def hanoi(n, src, dst, mid): global count if n == 1: print("{}:{}->{}".format(1, src, dst)) count += 1 else: hanoi(n - 1, src, mid, dst) print("{}:{}->{}".format(n, src, dst)) count += 1 hanoi(n - 1, mid, dst, src) count = 0 hanoi(3, 'A', 'B', 'C') print(count)
1:A->B 2:A->C 1:B->C 3:A->B 1:C->A 2:C->B 1:A->B 7