Python學習筆記 16

2021-09-19 10:41:48 字數 1682 閱讀 9807

自己總結的:遞迴就是將大的問題分解為相同的小問題,方法內重複呼叫自己

# 求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 這種框架有可能促成多任務模型,即聯合檢測和跟蹤視覺物體,這接近行業的需求。...