12.程式程式設計基礎6:選擇和迴圈

大牧莫邪發表於2017-05-17

正常情況下,我們完成一件事情的過程中,可能會存在多種條件限制 如:使用者去ATM機取錢->輸入取款密碼->輸入正確,取錢成功 | 輸入錯誤,退卡。 這樣的情況下,需要根據不同的條件,執行不同的邏輯處理過程,反映在我們的程式中也是一樣的,也就是我們接下來要說的程式結構

1. 程式結構

程式按照執行的過程進行結構的劃分,一般包含三種結構 * 順序結構:按照順序依次逐行執行程式碼的過程 * 選擇結構:程式按照不同的條件執行不同的處理程式碼的過程 * 迴圈結構:程式按照指定的條件,如果條件滿足就重複指定一端處理程式碼的過程

順序結構,就是入門程式中寫的程式碼,不做贅述

1.2 選擇結構

選擇結構語法 ```

# expression是一個表示式判斷條件,表示式執行結果為True或者False
if expression:   
    # 選擇結構中執行的程式碼,程式碼縮排4個空格[強制規範]
    executor code  

以下三種選擇結構的使用方式

# 單個if選擇結構
expr = "下雨了"
if expr == "下雨了": # 判斷條件 expr和"下雨了"字串判斷相等為true
    print("打傘"); # 條件為True,執行if程式碼塊
print("出門");
----
程式碼執行結果:打傘 出門

# if-else選擇結構
if expr == "下雨了":
    print("宅在家裡吧")
else:
    print("出門去逛吃逛吃");
----
程式碼執行結果:宅在家裡吧

# 多個if選擇分支
user = "admin"
if user == "admin":
    print("管理員登入系統")
elif user == "manager"
    print("會員登入系統");
else:
    print("遊客登入系統")
----
程式碼執行結果:管理員登入系統

```

注意:python中不提供switch-case語法結構

2. 迴圈結構

程式結構中的迴圈結構,用於重複執行一段相同處理邏輯的程式碼。 如:要計算1~10的加法運算,我們常規的可以通過1+2+...+10來進行編碼運算;但是1~100甚至1~10000的疊加運算,普通的編碼方式就不適合了,此時就需要用到迴圈結構

python提供了兩種迴圈結構 * for [variable] in [list] 迴圈 * while [expression] 迴圈

下面,就兩種迴圈分別進行講解

2.1. for..in迴圈結構

語法結構: ```

for 變數 in 一組資料的列表:
     直接使用變數
-----
如下面的案例:
users = ["生化魔人扎克", "暗黑元首辛德拉", "懲戒之箭維魯斯", "凜冬之怒瑟莊妮", "戰爭女神希維爾"]
for u in users:
    print("name: " + u);
----
執行結果:
name: 生化魔人扎克
name: 暗黑元首辛德拉
name: 懲戒之箭維魯斯
name: 凜冬之怒瑟莊妮
name: 戰爭女神希維爾

同樣的,我們也可以使用python內建的函式來動態生成列表,對動態列表也是可以迴圈進行處理的

# 計算1~100自然數的和
for num in range(101):
    sum += num;
print (sum)
----
執行結果:5050

```

2.2. while迴圈結構

python為了方便通過條件進行資料的迴圈控制,提供了while迴圈,當條件滿足時重複執行,當條件不滿足時跳出迴圈 while迴圈語法結構 ```

while 條件表示式:
    迴圈體中的程式碼

如:判斷當使用者的賬號和密碼都為admin時提示登入成功,否則要求重新輸入

# 定義儲存使用者登入賬號的變數
username = "";
# 定義儲存使用者登入密碼的變數
password = "";
# 定義判斷使用者賬號密碼輸入正確/錯誤的狀態
status = false;
while username != "admin" or password != "admin":
     if status:
          print("賬號或者密碼有誤, 請重新輸入")
     username = input("請輸入賬號:");
     password = input("請輸入密碼:"); 
     status = true;
print("登入成功");
-----
大家可以自行編寫程式碼執行一下,檢視一下執行結果

```

2.3. break關鍵字

break關鍵字,主要用在迴圈體的程式碼中,用於在滿足一定條件時跳出迴圈 如:計算1~100的和,如果一旦出現17,就不繼續執行了 ```

sum = 0;
for x in range(101):
    if x == 17:
        break;
    sum += x;
print("程式執行完成,輸出結果:" + str(sum));

``` 圖解break執行的過程

我們在專案開發過程中,經常會遇到類似的情況,如果一旦要在一定條件滿足時終止迴圈,請記得還有break在痴情的等待你

2.4. continue關鍵字

continue關鍵字和break關鍵字一樣,都是用來控制迴圈的,不同的是continue關鍵字,主要是滿足一定的條件時終止本次迴圈直接進入下一次迴圈

如:計算1~100的和,但是如果遇到偶數不做任何處理 ```

sum = 0;
for x in range(101):
    if x % 2 == 0:
        continue;
    sum += x
print("計算結果:" + str(sum))

``` 圖解continue關鍵字的使用

3. 總結

在程式設計開發的過程中,作為程式最基本的選擇結構和迴圈結構,編寫基礎程式碼的過程中,佔據了非常重要的地位,對這兩部分的內容的操作要非常熟練 * 選擇結構 python只是提供了一種if選擇結構,極大程度的簡化了根據條件進行不同資料處理邏輯的控制 * 迴圈結構 python提供了for..in迴圈結構和while迴圈結構 for..in迴圈結構注重於對固定資料列表的迴圈遍歷和使用 while迴圈結構注重於對迴圈條件的判斷來執行迴圈的過程

相關文章