自己總結的:遞迴就是將大的問題分解為相同的小問題,方法內重複呼叫自己
# 求10的階乘(10!)
deffactorial
( n )
:# for迴圈方法
result = n
for i in
range(1
,n):
result *= i
return result
n =4
print
( factorial(n)
)# 遞迴就是將大的問題分解為相同的小問題,重複呼叫自己
# 兩個主要條件:
# - 1.基線條件(遞迴結束條件)
# - 2.遞迴條件(繼續進行條件)
# 遞迴編寫難,但閱讀容易,迴圈編寫容易,閱讀稍難
deffn
( n )
:if n ==1:
return
1else
:return n* fn(n-1)
n =5
print
( fn( n )
)# 建立power函式進行冪運算 n**i
defpower
(n:int
, i:
int)
->
int:
''' 冪運算n的i次方 n**i
引數:n為底數
i為指數
'''if i==1:
return n
else
:return n*power(n , i-1)
print
( power(3,
2))print
( power(2,
3))
# 檢查回文字串
# 自己想的方法(沒有想到切片,把它轉化為列表刪除的方法,能實現但有點麻煩)
defpalindrome
( s:
str)
->
bool
:'''
檢查乙個字串是否是回文字串
引數s是待檢查的字串
'''s=list
(s)if s[0]
== s[-1
]:del s[0]
if s==
:return
true
del s[-1
]if s==
:# 寫兩次判斷是因為字串的長度為奇數或者偶數
return
true
return palindrome(s)
else
:return
false
a ='abcga'
print
( palindrome(a)
)# 老師講的方法,用切片簡單許多
defhui_wen
(s):
iflen
(s)<2:
return
true
elif s[0]
!= s[-1
]:return
false
else
:return hui_wen(s[1:
-1])
a ='abvba'
print
( hui_wen(a)
)
python學習筆記(16)
因為列舉成員不是有序的,所以它們只支援通過標識 identity 和相等性 equality 進行比較。enum 類的列舉是不支援大小運算子的比較的。使用 intenum 類進行列舉,就支援比較功能。usr bin env python3 coding utf 8 import enum class...
Python學習筆記 Day16
今日大綱 一 物件導向的組合 組合 給乙個類的物件封裝乙個屬性,這個屬性就是另乙個類的物件 組合的意義 讓乙個類的物件和另乙個類的物件產生關係,讓乙個類和另乙個類產生關係 如何組合 1 在類1中定義乙個方法,類1的物件1在執行這個方法的時候能增加乙個屬性,屬性值就是類2的物件2 2 物件1執行這個方...
學習筆記16
提出該動機的原因有3個方面 1 檢測演算法是專門在複雜場景中精確定位和區分物件的,這可能導致更準確和穩健的 2 重用檢測模型可以減少跟蹤中的重複工作,因此我們可以將更多精力放在跟蹤特定的問題上,例如目標域適應和時間依賴性。3 這種框架有可能促成多任務模型,即聯合檢測和跟蹤視覺物體,這接近行業的需求。...