think python學習筆記(5)

2021-10-06 22:29:52 字數 2674 閱讀 9580

鏈式條件

當有多個可能的時候,我們需要多個分支

表示這種情況的方法之一是鏈式條件

if x>y:

print(0

)elif xprint(1

)else

:print(2

)

elif是else if的縮寫,elif語句數目沒有限制,如果只有乙個else1從句,那麼這個從句必須在最末,但這個語句並不是必須的

巢狀條件

存在外層條件和內層條件

if x==y:

print

("equal"

)else

:if xprint

("less"

)else

:print

("greater"

)

但是巢狀語句在可讀性上較差,當需要多個條件並行時,可以使用邏輯運算子代替

遞迴乙個函式呼叫另乙個函式是合法的,乙個函式呼叫自己也是合法的

def

countdown

(n):

if n<=0:

print

("blastoff!"

)else

:print

(n) countdown(n-

1)

當n大於0時,會不斷的遞減同時呼叫自己,直到等於0

乙個呼叫它自己的函式是遞迴的,這個過程被稱為遞迴(recursion)

利用遞迴將乙個字串列印n次

def

print_n

(s,n)

:if n<=0:

return

print

(s) print_n(s,n-

1)

在需要迴圈的地方合理選擇遞迴還是for迴圈

遞迴函式的堆疊圖

每當乙個函式被呼叫時,python會生成乙個新的棧幀,用於儲存函式的區域性變數和形參。對於乙個遞迴函式,在堆疊上可能同時有多個堆疊

堆疊的頂部是main棧幀

每乙個棧幀的形參n存在不同的值,n=0的棧底,被稱作基礎情形,它已經不能再被遞迴呼叫了,沒有更多的棧幀了

無限遞迴

如果乙個遞迴永遠不會到達基礎情形,一直進行遞迴,並且程式永遠不會終止

這被稱作無限遞迴

def

recurse()

: recurse(

)

在大多數程式設計環境裡,乙個具有無限遞迴的程式並非永遠不會終止,當達到最大遞迴深度是,python會報告乙個錯誤資訊

鍵盤輸入

python提供了乙個內建函式input,可以暫停程式執行,等待使用者輸入,回車後繼續執行,input是以字串的形式返回使用者鍵入的內容

在使用者輸入是最好有提示語,input接受提示語作為實參

name =

input

('what is your name\n'

)

末尾的\n符號表示換行,這樣使用者的輸入就會出現在提示語的下方

如果想要輸入數字,input返回的都是字串,需要用int()做轉換

除錯錯誤資訊中重要的部分是

哪類的錯誤

在哪兒出現的

但是錯誤指向的地方不一定是錯誤發生的地方

注意空格和製表符經常被忽略

有返回值的函式

返回值呼叫乙個有返回值的函式會生成乙個返回值,我們通常將這個值賦給乙個變數或者作為表示式的一部分

e = math.exp(

1.0)

height = randius*math.sin(radians)

第乙個例子,area,分會給定半徑的圓的面積

def

area

(radius)

: a = math.pi*radius**

2return a

return語句的意思是,馬上從該函式返回,並使用接下來的表示式作為返回值,表示式可以複雜,不一定只是乙個變數

def

area

(radius)

:return math.pi*radius**

2

另一方面,像a這樣的臨時變數能使除錯變得更加簡單

在條件語句中,也可以根據不同的條件,返回不同的值

def

adsolute_value

(x):

if x<0:

return

-x else

:return x

一旦返回語句執行,函式就會終止,後面的**不會被執行

出現在return語句之後的**,或者在執行流程中永遠不會到達的**,被稱為死**

在乙個有返回值的韓世忠,最好保證每一種流程都存在return語句

def

absolute_value

(x):

if x<0:

return

-x if x>0:

return x

在上述**中,當x=0時,就不存在返回值函式直接執行結束,那麼返回值將會是none,注意none和0的區別

python中提供了乙個函式abs計算絕對值

think python學習筆記(6)

增量式開發 面對複雜的程式,可以採用增量式開發 增量式開發的目標是通過每次只增加和測試少量 來避免長時間的除錯 這種開發而關鍵在於 1.從乙個能執行的程式開始,每次只增加少量改動 2.用臨時變數儲存中間值,便於檢查 3.刪除腳手架 組合寫乙個函式,接受兩個點作為引數,分別是圓心和圓周上一點,然後計算...

think python學習筆記(7)

平方根 迴圈常用於計算數值的程式中,這類程式一般從乙個大概的值開始,然後迭代式的進行改進 例如,牛頓法是計算平方根的一種方法 當我們想求a的平方根時,從任意乙個估算值開始x,利用下面的公式可以計算出更為精確地估算值 y x a x 2 得到的y的值會更加接近平方根的真實值,不斷的用y去代替x,利用這...

think python學習筆記(12)

字典和列表 在字典中,列表可以作為值出現。例如,當倒轉字典的時候,可能有的鍵對應的值,就是由列表組成的 def invert dict d inverse dict for key in d val d key if val not in inverse inverse val key else i...