學(xué)習(xí)記錄,歡迎指出錯誤
流程控制
Python中流程控制語句有
-
if
語句 -
for
語句 -
while
語句
if語句
在Python中if語句的一般形式為:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
.
.
.
else:
statement_block_3
- 每個條件后面要使用冒號?:荠耽,表示接下來是滿足條件后要執(zhí)行的語句塊。
- 使用縮進(jìn)來劃分語句塊霎挟,相同縮進(jìn)數(shù)的語句在一起組成一個語句塊悟耘。
- 用elif代替了else if欠拾,所以if語句的關(guān)鍵字為:if – elif – else。
- 在Python中沒有switch – case語句衩茸。
for語句
在Python中for語句的一般形式為:
for <variable> in <sequence>:
<statements>
else:
<statements>
- for循環(huán)可以遍歷任何序列的項(xiàng)目
while語句
在Python中while語句一般形式為
while 判斷條件
語句
- 在Python中沒有do...while循環(huán)
在for和while語句中芹血,可使用break
和continue
語句及循環(huán)中的else
子句
- break語句可以跳出for和while的循環(huán)體。如果你從for或while循環(huán)中終止楞慈,任何對應(yīng)的循環(huán)else塊將不執(zhí)行幔烛。
- continue語句被用來告訴Python跳過當(dāng)前循環(huán)塊中的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán)抖部。
- 循環(huán)語句可以有else子句说贝,它在窮盡列表(以for循環(huán))或條件變?yōu)榧?以while循環(huán))循環(huán)終止時被執(zhí)行,但循環(huán)被break終止時不執(zhí)行。
- pass語句什么都不做慎颗,它只在語法上需要一條語句但程序不需要任何操作時使用乡恕。
range()語句
如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)俯萎。它會生成數(shù)列傲宜,例如:
>>> for n in range(3):
print(n)
0
1
2
指定區(qū)間
>>> for n in range(2,6):
print(n)
2
3
4
5
指定區(qū)間并指定增量
>>> for n in range(0, 10, 3):
print(n)
0
3
6
9
可以是負(fù)數(shù),又叫做“步長”
>>> for n in range(0, -10, -3):
print(n)
0
-3
-6
-9
遞歸函數(shù)
- 在函數(shù)內(nèi)部夫啊,可以調(diào)用其他函數(shù)函卒。如果一個函數(shù)在內(nèi)部調(diào)用自己本身,這個函數(shù)就是遞歸函數(shù)撇眯。
- 遞歸函數(shù)的有點(diǎn)是定義簡單报嵌,邏輯清晰虱咧,使用遞歸函數(shù)需要注意防止棧溢出。
在計算機(jī)中锚国,函數(shù)調(diào)用是通過棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的腕巡,每當(dāng)進(jìn)入一個函數(shù)調(diào)用,棧就會加一層棧幀血筑,每當(dāng)函數(shù)返回绘沉,棧就會減一層棧幀。由于棧的大小不是無限的豺总,所以车伞,遞歸調(diào)用的次數(shù)過多,會導(dǎo)致棧溢出喻喳。 - 通過尾遞歸解決遞歸調(diào)用棧溢出另玖。
尾遞歸是指,在函數(shù)返回的時候表伦,調(diào)用自己本身日矫,并且return
語句不能包含表達(dá)式。這樣绑榴,遞歸本身不管調(diào)用多少次,都只占用一個棧幀盈魁,不會出現(xiàn)棧溢出的情況翔怎。