- Python程序設計案例教程:從入門到機器學習(微課版)
- 張思民
- 2517字
- 2019-12-06 14:23:21
2.4 程序控制結構
2.4.1 順序控制語句
順序控制是指計算機在執行這種結構的程序時,從第一條語句開始,按從上到下的順序依次執行程序中的每一條語句。
1.輸出語句
在Python中使用print()函數輸出數據。
(1)直接輸出
字符串、數值、列表、元組、字典等類型都可以用print()函數直接輸出。
例如:

(2)格式化輸出
print()函數可以使用%格式化輸出數據。常用的格式化輸出符號如表2.2所示。
表2.2 常用的格式化輸出符號

【例2-1】格式化輸出及控制換行輸出示例。
程序代碼如下:

將程序保存為ex2_1.py。運行程序:
python ex2_1.py
程序運行結果如下:
15 3 12.8 中國 廈門 拉薩 3.1416 1 2 3 0 1 2 3 4 5
2.輸入語句
在Python中,使用input()函數輸入數據。input()函數只能輸入字符數據。當需要輸入數值型數據時,可以使用eval()函數將字符轉換為數值。
【例2-2】從鍵盤上輸入兩個數,并計算兩數之和。
程序代碼如下:

將程序保存為ex2_2.py。運行程序:
python ex2_2.py
程序運行結果如下:

【例2-3】交換兩個變量的值。
在編寫程序時,有時需要把兩個變量的值互換,Python在交換值的運算時不需要用中間變量。
程序代碼如下:

將程序保存為ex2_3.py。運行程序:
python ex2_3.py
程序運行結果如下:
a,b = 3 5 a,b = 5 3
2.4.2 if選擇語句
1.單分支選擇結構
if語句用于實現選擇結構。它判斷給定的條件是否滿足,并根據判斷結果決定執行某個分支的程序段。對于單分支選擇語句,其的語法格式為:

這個語法的意思是,當條件表達式給定的條件成立時(true),就執行其中的語句塊;若條件不成立(false),則跳掉這部分語句,直接執行后續語句,其流程如圖2.1所示。
【例2-4】從鍵盤任意輸入兩個整數,按從小到大的順序依次輸出這兩個數。
從鍵盤上輸入的兩個數a、b,如果a<b,本身就是從小到大排列的,可以直接輸出。但如果a > b,則需要交換兩個變量的值,其算法流程如圖2.2所示。

圖2.1 單分支的if條件語句

圖2.2 按從小到大排列的順序輸出兩數
程序代碼如下:

將程序保存為ex2_4.py。
程序運行結果如下:

【例2-5】對給定的三個數,求最大數的平方。
設一變量max存放最大數,首先將第一個數a放入變量max中,再將max與其他數逐一比較,較大數則存放到max中;當所有數都比較結束之后,max中存放的一定最大數,其算法流程如圖2.3所示。

圖2.3 求三個數中最大數的平方
程序代碼如下:

將程序保存為ex2_5.py。
程序運行結果如下:
最大數的平方為:81
2.雙分支選擇結構
有時,需要在條件表達式不成立時執行不同的語句,可以使用另一種雙分支選擇結構的條件語句,即if-else語句。雙分支選擇結構的語法格式為:

這個語法的意思是,當條件式成立時(true),執行語句塊1;否則(else),就執行語句塊2。對于雙分支選擇類型的條件語句,其流程如圖2.4所示。

圖2.4 雙分支選擇結構的條件語句
if-else語句的擴充格式是if…else if。一個if語句可以有任意個if…else if部分,但只能有一個else。
【例2-6】計算
程序代碼如下:

將程序保存為ex2_6.py。
運行程序:
python ex2_6.py
程序運行結果如下:

3.多分支選擇結構
當處理多種條件問題時,就要使用多分支結構,其語法格式為:

【例2-7】將百分制轉換為五級記分制。
程序代碼如下:

將程序保存為ex2_7.py。
運行程序:
python ex2_7.py
程序運行結果如下:
請輸入百分制成績:83 83對應的5分制為:4
2.4.3 循環語句
在程序設計過程中,經常需要將一些功能按一定的要求重復執行多次,多次重復執行的這一過程稱為循環。
循環結構是程序設計中一種很重要的結構。其特點是,在給定條件成立時,反復執行某程序段,直到條件不成立為止。給定的條件稱為循環條件,反復執行的程序段稱為循環體。
Python中的循環語句包括for語句和while語句。
1.for循環語句
for循環語句一般形式的語法結構如下:

for語句的執行過程是這樣的:首先執行循環變量賦初值,完成必要的初始化工作;再判斷循環變量是否小于終值,若循環條件能滿足,則進入循環體中執行循環體的語句;執行完循環體之后,循環變量增加一個步長值,以改變循環條件,這一輪循環就結束了。第二輪循環又從判斷增加步長值后的循環變量是否小于終值開始,若循環條件仍能滿足,則繼續循環;否則跳出整個for語句,執行后續語句。for循環語句的執行過程如圖2.5所示。

圖2.5 for循環語句的執行過程
當循環變量的步長值為1時,可以省略,即可寫成:

【例2-8】求從1加到9的和。
程序代碼如下:

將程序保存為ex2_8.py。
運行程序:
python ex2_8.py
程序運行結果如下:

在for循環中,循環變量的值在循環體內發生改變,并不會影響循環次數。
【例2-9】在循環體內改變循環變量的值,觀察循環次數。
程序代碼如下:

將程序保存為ex2_9.py。
運行程序:
python ex2_9.py
程序運行結果如下:

但是,如果把程序改寫成:

則程序運行結果如下:

在for循環中,可以使用continue語句結束本次循環,也可以使用break語句跳出循環體,從而結束整個循環。
【例2-10】計算10以內的偶數和。
程序代碼如下:

在本例中,“i%2 == 1”表示循環變量i為奇數。當i取奇數時,結束本次循環,繼續取下一個數來判斷;若i為偶數,則計算求和。
將程序保存為ex2_10.py。
運行程序:
python ex2_10.py
程序運行結果如下:

【例2-11】設有列表s = ['Pytho', 'java', 'C++/C', 'PHP', 'JavaScript'],應用循環遍歷列表所有元素,并在屏幕上顯示。
程序代碼如下:

將程序保存為ex2_11.py。
運行程序:
python ex2_11.py
程序運行結果如下:

2.while語句
while循環語句一般形式的語法結構如下:

while語句的執行過程是這樣的:首先判斷循環條件是否為true,若循環條件為true,則執行循環體中的語句;若為false,則終止循環。while循環的流程圖如圖2.6所示。

圖2.6 while循環結構的流程圖
【例2-12】求10!。
計算n!,由于pn=n! = n * (n – 1) * (n – 2 ) * … * 2 * 1 = n * (n – 1)! ,因此可以得到遞推公式:

可以用一個變量p來存放推算的值,當循環變量n從1遞增到10時,用循環執行p=p*n,每一次p的新值都是原p值的n倍,最后遞推求到10!。
程序代碼如下:

將程序保存為ex2_12.py。
運行程序:
python ex2_12.py
程序運行結果如下:

3.循環嵌套
循環可以嵌套,在一個循環體內包含另一個完整的循環,叫作循環嵌套。循環嵌套運行時,外循環每執行一次,內層循環要執行一個周期。
【例2-13】應用循環嵌套,編寫乘法九九表程序。
算法分析:用雙重循環控制輸出,用外循環變量i控制行數,i為1~9。內循環變量j控制列數,由于i * j = j * i,故內循環變量j為1~i。外循環變量i每執行一次,內循環變量j執行i次。
程序代碼如下:

其中,print()中的end=" "表示不換行輸出。
將程序保存為ex2_13.py。
運行程序:
python ex2_13.py
程序運行結果如下:

【例2-14】應用循環嵌套打印出由“*”組成的直角三角形圖形,如圖2.7所示。

圖2.7 由“*”組成的直角三角形圖形
程序代碼如下:

將程序保存為ex2_14.py。
運行程序:
python ex2_14.py
程序運行結果如下:

- OpenStack Cloud Computing Cookbook(Third Edition)
- Web交互界面設計與制作(微課版)
- Dependency Injection in .NET Core 2.0
- C語言程序設計立體化案例教程
- 數據結構(C語言)
- ADI DSP應用技術集錦
- Rust Essentials(Second Edition)
- PhoneGap:Beginner's Guide(Third Edition)
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- 智能搜索和推薦系統:原理、算法與應用
- Clojure for Machine Learning
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- Web App Testing Using Knockout.JS
- C++程序設計教程
- C語言程序設計與應用實驗指導書(第2版)