1. 程式人生 > >Python中的分支和迴圈

Python中的分支和迴圈

分支和迴圈

一、分支結構

Python中的分之結構只有if語句,沒有switch語句.

1、if語句

a.語法:

if 條件語句:
    程式碼段

b.說明:

  •   if         - 關鍵字
    
  • 條件語句 - 任何有結果的表示式(不管結果是什麼型別)
  •  :           - 固定寫法
    
  • 程式碼段 - 和if保持一個縮排的一條或者多條語句

c.執行過程:

  • 先判斷條件語句的結果是否是True,如果是True就執行程式碼段,否則就不執行

注意:

如果條件語句的結果不是布林,會先將結果轉換成布林再判斷;

賦值語句不能寫在if的後面,其他語句基本上都可以。

2、if-else

a.語法:

if 條件語句:
    程式碼段1
else:
    程式碼段2

b.執行過程:

    先判斷條件語句的結果是否為True,如果是True就執行程式碼段1,否則就執行程式碼段2

3、if-elif-else

a.語法:

if 條件語句1:
    程式碼段1
elif 條件語句2:
    程式碼段2
elif 條件語句3:
    程式碼段3
    ……
else:
    程式碼段n

b.執行過程:

  • 先判斷條件語句1的結果是否為True,為True就執行程式碼段1;
  • 否則,就判斷條件語句2的結果是否為True,為True就執行程式碼段2;
  • 否則,就判斷條件語句3的結果是否為True,為True就執行程式碼段3;
  • 以此類推,如果前面的條件語句都為False,就執行else後面的程式碼段n

注意:

  • 1.後面條件的判斷前提是前面的條件不成立
  • 2.這兒的elif根據情況可以有多個 else也可以省略

4、if巢狀

指的是可以在if、elif、else後面的程式碼段中,都可以再寫其他的if語句。

二、for迴圈

1、for迴圈

a.語法:

for 變數 in 序列:
    迴圈體

b.說明:

  • for - 關鍵字
  • 變數 - 變數名 隨便命名(滿足變數名的要求)
  • in - 關鍵字
  • 序列 - 字串 列表 元組 字典 集合 迭代器(如:range)
  • 迴圈體 - 和for保持一個縮排的一條或者多條語句(需要重複執行的程式碼)

c.執行過程:

讓變數去序列中取值,一個一個地取,取完為止,每取一個值,執行一次迴圈體(for迴圈中,序列中元素的個數,決定了迴圈的次數,序列中的內容控制每次變數取到的值)

d.如果for後面的變數取到的值,再迴圈裡面不使用,那麼這個變數命名的時候,用一個 _ 來命名

2、range

用法:

  • range(n) - 產生一個數字序列,序列中的內容是0 ~ n-1(結果是序列)
  • range(m, n) - 產生一個數字序列,序列中的內容是m ~ n-1(結果是序列)
  • range(m, n, step) - 產生一個數字序列,序列從m開始,每次加step,直到n前為止

range一般用在:

a.需要產生指定範圍的數字序列
b.單純地控制for迴圈的迴圈次數

三、while迴圈

1、while迴圈

a.語法:

while 條件語句:
    迴圈體

b.說明:

 while   - 關鍵字
條件語句  - 有結果的表示式(除了賦值語句,一般的表示式都行)
   :     - 固定寫法
迴圈體    - 和while保持一個縮排的一個或者多條語句(會被重複執行)

c.執行過程(重點!):

先判斷條件語句是否為True,為True就執行迴圈體;
執行完迴圈體再判斷條件語句是否為True,為True又執行迴圈體;
執行完迴圈體再判斷條件語句是否為True,為True又執行迴圈體;
……
依次類推,直到判斷條件語句的結果為False,整個迴圈就結束

2、for迴圈和while迴圈的選擇

python中,for迴圈能做到的,while迴圈都能做到,但是while迴圈能做的,for迴圈不一定能做到。

使用for迴圈:

  • a.獲取序列中的元素(值)
  • b.迴圈次數確定

while迴圈:

  • a.死迴圈
  • b.迴圈次數不確定

四、break、continue和else

1、continue

continue是一個關鍵字,只能寫在迴圈體中

功能:
    當迴圈體執行過程中遇到continue,會結束當次迴圈,直接進入下次迴圈的判斷;
   (直接進入下次迴圈的判斷:for迴圈就是用變數取下一個值,while迴圈就是直接判斷條件語句是否為True)

2、break

break是一個關鍵字 只能寫在迴圈體中
功能:當迴圈過程中遇到了break 整個迴圈直接結束

3、else

a.語法:

while 條件語句:
    迴圈體
else:
    程式碼段

for變數 in 序列:
    迴圈體
else:
    程式碼段

b.執行過程:

else結構不會影響原迴圈的執行過程,當迴圈自然死亡(指for迴圈中取值取完,while中條件語句成為False)的時候就會執行else中的程式碼段;
迴圈因為遇到break而結束的時候,不會執行else後面的程式碼段。