在前面幾篇文章中,我們學習了列表、元組、字典、集合和字串等一系列python的基本資料型別和資料結構。但僅靠這些資料結構型別是無法支援整個程式執行的,在程式設計中,流程控制是程式執行的基礎,它決定了程式按照什麼方式去執行。
條件語句
python的條件語句和其他語言一樣,都是用if語句實現。
if語句表示如果發生什麼樣的條件,執行什麼樣的邏輯。
語法如下:
if condition_1:
statement_1
elif condition_2:
statement_2
…elif condition_i:
statement_i
else:
statement_n
示例:id = 1
if id == 0:
print(『red』)
elif id == 1:
print(『blue』)
else:
print(『yellow』)
由於python不支援switch語句,因此,當存在多個條件判斷時,我們需要用else if來實現,這在python中的表達是 elif。初中語文輔導在條件語句中,可能會有零到多個elif部分,else是可選的。關鍵字 elif 是 else if 的縮寫,這個可以有效地避免過深的縮排。
整個條件語句是順序執行的,如果遇到乙個條件滿足,比如condition_i滿足時,再執行完statement_i後,便會退出整個條件語句,而不會繼續向下執行。
需要注意的是:
在條件語句末尾必須加上冒號(?,這是python特定的語法規範。
if語句可以單獨使用,但elif、else都必須和if成對使用。
迴圈語句
迴圈,本質上就是遍歷集合中的元素。和其他語言一樣,python中的迴圈一般通過for迴圈和while迴圈實現。
for迴圈
語法格式如下:
『』』for 後面跟變數名,in後面跟序列(主要指列表、元組、字串、檔案等等)
for 迴圈每次從序列中取乙個值放到變數中
『』』for item in :
statements(s)
示例:s = 『hello world』
for char in s:
print(char)
list = [1, 2, 3, 4, 5]
for item in list:
print(item)
我們也可以通過索引來遍歷元素。通常通過range()函式拿到索引,再去遍歷訪問元素。
range (start, end, scan):
start:計數從start開始,預設從0開始。比如range(3)等價於range(0, 3)
end:計數到end結束,但不包括end。比如range(0, 3)的結果是[0, 1, 2],但不包含3
scan:每次跳躍的間距,預設為1。
示例如下:
l = [『zhangsan』, 『lisi』, 『wangwu』, 『sunliu』, 『zhouqi』]
for index in range(0, len(l)):
print(l[index])
如果我們同時需要索引和元素時,可以通過python內建的enumerate()函式來遍歷集合。
for index, item in enumerate(l):
print(『index: {}, value: {}』.format(index, item))
關於字典的遍歷
這裡單獨強調一下字典。字典本身只有鍵是可迭代的,如果我們要遍歷它的值或者鍵值對,需要通過其內建的函式values()或items()實現。
其中,values()返回字典的值的集合,items()返回鍵值對的集合。
d =
for k in d:
print(k)
for val in d.values():
print(val)
for k, v in d.items():
print(『key: {}, value: {}』.format(k, v))
while迴圈
while迴圈,表示當condition滿足時,一直重複迴圈執行某段程式,直到condition不再滿足,就跳出迴圈體。
while condition:
執行語句…
很多時候,for迴圈和while迴圈可以相互轉換,比如要遍歷乙個列表,用while迴圈同樣可以完成。
list = [1, 2, 3, 4, 5]
index = 0
while index < len(list):
print(list[index])
index += 1
也可以在 while 迴圈中新增判斷邏輯
count = 0
while count < 3:
print(『count 小於3』)
count += 1
else:
print(『count 大於等於3』)
break用法
break可以跳出for迴圈和while迴圈。如果從for或while迴圈跳出,相應的迴圈else**塊將不執行。
示例:for char in 『hello world』:
if char == 『l』:
break
print(char)
count = 0
while count < 10:
if count >= 5:
break
print(count)
count += 1
continue用法
continue語句用來跳過當前迴圈塊中的剩餘語句,然後進行下一輪迴圈。
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非雙數時跳過輸出
continue
print(i)
條件與迴圈的復用
前面我們介紹了條件與迴圈的基本操作,接下來我們來看看它們的高階操作,讓程式變得更簡潔高效。
在閱讀別人**時,我們會發現,很多將條件和迴圈並做一行的寫法,如:
expression1 if condition else expression2 for item in iterable
我們將上面的表示式分解成多行**,等同於下方的巢狀結構:
for item in iterable:
if condition1:
expression1
else:
expression2
如果表示式中沒有else語句,則需要寫成:
expression1 for item in iterable if condition1
接下來我們用兩個例子來熟悉一下這種寫法。
1、我們要繪製y = 2*|x| + 5 的函式影象,給定集合x的資料點,需要計算出y的資料集合
x = [-2, -1, 0, 1, 2]
y = [value * 2 + 5 if value > 0 else -value * 2 + 5 for value in x]
print(y)[,,
]總結在條件語句中,if可以單獨使用,但是elif和else必須和if同時搭配使用;而if條件語句的判斷,除了boolean型別外,其他的最好顯示出來。
在for迴圈中,如果需要同時訪問索引和元素,你可以使用enumerate()函式來簡化**。
寫條件與迴圈時,合理利用continue或者break來避免複雜的巢狀,是十分重要的。
要注意條件與迴圈的復用,簡單功能往往可以用一行直接完成,極大地提高**質量與效率。
python從小白到入門 2
1 判斷語句 if elif else 後面不要忘記加 下面是 塊,必須要進行 縮排,判斷時一般用肯定句。weather sunny if weather rainy print 在家學習 elif weather sunny print 去釣魚 else print 逛街 2 if後面結果是tru...
從小白到大佬 python學習day03
1.for迴圈語法 for 變數 in 序列 迴圈體說明 a.for in 關鍵字 固定寫法 b.變數 可以是任意變數 一般寫乙個新的變數 c.序列 python中容器型資料型別,例如 字串 列表 字典 元組 集合 迭代器等。d.冒號 固定寫法 e.迴圈體 和for保持乙個縮排的一條或者多條語句 迴...
Python從小白到大牛 第12章 異常處理
程式總有各種異常,我們要能預料到各種可能的異常並進行處理,避免程式因為異常而關閉。try except 如 try s 2 0except zerodivisionerror print 0不能當除數 也可以多except。也可以巢狀。try try except except try except...