官术网_书友最值得收藏!

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

程序運行結果如下:

主站蜘蛛池模板: 澜沧| 浑源县| 宜良县| 北流市| 葵青区| 文山县| 进贤县| 仪陇县| 嘉黎县| 镇原县| 高雄县| 高唐县| 襄樊市| 福安市| 淳安县| 诸城市| 聊城市| 汤原县| 银川市| 谢通门县| 古交市| 武清区| 高清| 清原| 房产| 普格县| 顺昌县| 忻州市| 丁青县| 土默特左旗| 磐安县| 孟连| 宁津县| 航空| 舞阳县| 平阴县| 独山县| 万荣县| 瑞金市| 四会市| 景泰县|