Python流程控制語句詳解

1.程序結構

計算機在解決問題時,分別是順序執行全部語句、選擇執行部分語句、循環執行部分語句,分別是:順序結構、選擇結構、循環結構。以下圖:spa

2.選擇語句

  2.1最簡單的if語句

  Python使用保留字if來組成選擇語句,其格式以下:3d

if 表達式:
   代碼塊

  表達式能夠是一個單純的布爾值或者變量,也能夠是比較表達式或者邏輯表達式,若是表達式值爲真,則執行「代碼塊」;若是值爲假,就跳過「代碼塊」,執行後面語句,如圖調試

  

   注:1.在Python中,當表達式的值爲非零的數或者非空的字符串時,if語句也認爲是條件成立(即爲真值)。code

··     2.使用if語句時,若是隻有一條語句,那麼語句塊能夠直接寫到冒號「:」的右側。但爲了代碼可讀性不建議這麼作。對象

     3.常見錯誤: blog

1.if語句後面未加冒號
number = 3
if number == 3   #後面未加冒號,正確的是結尾處添加英文半角的冒號:if number == 3:
    print(number)
2.使用if語句時,若是在符合條件時,須要執行多個語句,必定要記得按照邏輯順序進行代碼縮進,不然程序的本意會有變化,但程序不會報錯,且bug不容易發現。
代碼1:
number = 3
if number == 3:
  print(number)
print('這個是5')
代碼2:
number = 3
if number == 3:
  print(number)
  print('這個是5'

  2.2.if  …… else 語句

  Python中提供 if …else 語句來解決兩個選擇問題,其格式以下:開發

if 表達式:
    語句塊1
else:
    語句塊2

  使用 if …else 語句時,表達式能夠是一個單純的布爾值或者變量,也能夠是比較表達式或者邏輯表達式,若是表達式值爲真,則執行「代碼塊」;若是值爲假,執行else後面的代碼塊。如圖所示:字符串

  

  技巧:for循環

if…else額語句能夠使用條件表達式進行簡化,以下:
a = 5
if a > 0:
    b = a
else:
    b = -a
print(b)

簡化:
a = 5
b = a if a > 0 else -a
print(b)

  注:1. 在使用else 語句時,else必定不能夠單獨使用,它必須和保留字if一塊兒搭配使用。class

    2.程序中使用if…else 語句時,若是出現多個if 語句多餘else語句的狀況,那麼該else語句將會根據肯定該else 語句屬於哪一個if語句。

  2.3.if…elif…else語句

  在開發程序時遇到多選一的狀況,則能夠使用if …elif…else語句,具體狀況以下:

if 表達式1:
    語句塊1
elif 表達式2:
    語句塊2
elif 表達式3:
    語句塊3
…
else:
    語句塊n

  使用 if …elif…else 語句時,表達式能夠是一個單純的布爾值或者變量,也能夠是比較表達式或者邏輯表達式,若是表達式值爲真,則執行語句;若是值爲假,則跳過該執行語句,進行下一個elif判斷,只有表達式所有爲假的狀況下,執行else後面的代碼塊。如圖所示:

   注:1. if 和 elif 都須要判斷表達式的真假,而 else 則不須要判斷;另外 elif 和 elif 都須要跟 if 一塊兒使用,不能單獨使用。

     2. 使用if語句時儘可能避免遵循如下原則:

(1).當使用布爾類型的變量做爲判斷條件時,假設布爾類型變量爲flag,較爲規範格式;
if flag:   #表示爲真
if not flag #表示爲假
不符合規範格式:
if flag == True:
if flag == False:
(2).使用 " if 1 == a: " 這樣的書寫格式能夠防止錯寫成 " if  a = 1: "這種形式,從而避免出錯 

  2.4 if 語句的嵌套

  前面已經介紹了3種形式的 if 語句,這三種均可以進行相互嵌套:

  (1) . 在最簡單的if語句中嵌套 if……else語句,形式以下:

if 表達式1: if 表達式2: 語句塊1 else: 語句塊2

  (2). 在if……else中嵌套if……else語句,形式以下:

if 表達式1:
    if 表達式2:
        語句塊1
    else:
        語句塊2
else:
    if 表達式3:
        語句塊3
    else:
        語句塊4

  注:if 選擇語句能夠有多種嵌套方式,開發時能夠能夠根據自身的須要進行選擇合適的嵌套方式,但必定要嚴格控制好不一樣級別代碼的縮進量。

3.條件表達式

  在程序開發過程當中,常常會根據表達式的結果,有條件的進行賦值,例如返回最大值:

a = 6
b = 3
if a > b:
    c = a
else:
    c = b

  針對以上代碼,使用條件表達式進行簡化,以下:

a = 6
b = 3
c = a if a > b else b

4.循環語句

  4.1 while 循環

  while循環是經過一個條件來控制是否要繼續反覆執行循環體(循環體是指一組被重複執行的語句)中的語句。

while 條件表達式:
    循環體

  當條件表達式的返回值爲真時,則執行循環體中的語句,執行完畢後,從新判斷條件表達式的返回值,直到表達式返回的結果爲假是退出循環體。

  

   注:在使用while循環語句時,必定不要忘記添加將循環條件改變爲Flase的代碼,不然,將產生死循環。但開發中也離不開死循環,可根據狀況進行編寫。

   4.2. for循環

  for 循環是一個依次重複執行的循環,一般適用於枚舉、遍歷序列和對象中的元素。語法以下:

for 迭代變量 in 可迭代對象:
    循環體

  迭代變量用於保存讀除的值,對象爲遍歷或迭代的對象,該對象能夠是任何有序的序列對象,如字符串,列表,元組等,循環體爲一組被重複執行的語句。

  

  for循環語句能夠最基本的應用就是進行數值循環和遍歷字符串。還能夠進行遍歷列表、元組、集合和字典。

  4.3. 循環嵌套

  在Python中,是容許在一個循環體中嵌套另外一個循環。

  (1). 在while循環中嵌套while循環

while 條件表達式1:
    while 條件表達式2:
        循環體2
    循環體1

  (2). 在for 循環中嵌套 for 循環

for 迭代變量1 in 對象1:
    for 迭代變量2 in 對象2:
        循環體2
    循環體1

  (3). 在while 循環中嵌套 for 循環

while 條件表達式:
    for 迭代變量 in 對象:
        循環體2
    循環體1

  (4). 在 for 循環中嵌套 while 循環

for 迭代變量 in 對象:
    while 條件表達式:
        循環體2
    循環體1

  特殊案例:九九乘法表

for i in range(0,10):
    for j in range(1,i+1):
        print(str(j) + "*"  + str(i) + "=" + str(i * j) +"\t" ,end = " "
    print("")

5.跳轉語句

  當循環知足必定條件時,程序會一直執行下去,若是須要在中間離開循環,也就是for循環結束重複以前,或者while循環找到結束條件以前,即break語句和continue語句。

  5.1 break語句

  break能夠終止當前循環,包括for循環和while循環在內的全部控制語句。

  在while中使用break語句:

 

while 條件表達式1:
    執行語句
    if 條件表達式2:
        break

  在for 中使用break語句

for 迭代變量 in 對象:
    if 條件表達式:
        break

  

           while語句使用break                                                             for語句中使用break

  5.2.continue語句

  continue語句的做用沒有break語句強大,他只能終止本次循環而提早進入下次循環中。

  在while中使用continue語句

while 條件表達式1:
    執行代碼
    if 條件表達式2:
        continue

  在for 中使用continue語句

for 迭代變量 in 對象:
    if 條件表達式:
        continue

         

            while語句使用continue                                                     for語句中使用continue

  注:break與continue的區別

    break語句通常會結合if 語句進行搭配使用,表示在某種條件下,跳出循環。若是使用嵌套循環,break語句將跳出最內層循環。

    continue語句通常也會結合if語句進行搭配使用,表示在某種條件下,跳出當前循環的剩下語句,繼續進行下一輪循環,若是使用嵌套循環,continue語句將只跳過最內層循環中剩餘語句。

6.pass語句

  在Python中pass語句表示空語句,它不作任何事情,通常起到站位做用,經常使用在代碼調試等。

#例:
for i in range(1,10):    #輸出1~10的數不包含10
    if i % 2 == 0:         #判斷是不是偶數   
        print(i,end="")     #在同一行打印偶數 
    else:                      #不是偶數
        pass                    #佔位符,不作任何事情,直接跳過

#輸出結果爲:
2 4 6 8
相關文章
相關標籤/搜索