1. 程式人生 > >全國計算機等級考試二級教程--python語言程式設計(2018年版)第四章:程式的控制結構

全國計算機等級考試二級教程--python語言程式設計(2018年版)第四章:程式的控制結構

宣告:本篇文章只是個人知識盲區、知識弱點、重點部分的歸納總結,望各位大佬不喜勿噴。梳理順序是按照書籍的實際順序梳理,轉載請註明出處。

作者:sumjess

 

一、程式的三種控制結構:

1、程式流程圖:

      因為本身很簡單,同時圖也不好畫這裡就直接上照片了。

2、程式控制結構基礎:

      順序結構、分支結構、迴圈結構---後面有詳解

3、程式控制結構擴充套件:

      break、continue---後面有詳解

      break控制符用來結束當前迴圈。continue控制符用來結束當前迴圈的當次迴圈過程。

二、程式的分支結構:

因為該部分與C語言非常接近,所以在本段的最後用一個例題包含所有。

1、單分支結構 :if

   (1)使用方式如下:

            if <條件>:

               <語句塊>

       其中,if、:和<語句塊>前的縮排
都是語法的一部分。

   (2)<條件>是一個或多個條件,多個條件間採用and或or進行邏輯組合。and表示多個條件“與”的關係,or表示多個條件“或”的關係。

2、二分支結構 :if---else

   (1)使用方式如下:

            if <條件>:

               <語句塊1>

            else:

               <語句塊2>

       其中,if、else、:和<語句塊>前的縮排都是語法的一部分。

   (2)還有一種表達形式如下:

             <表示式1>   if   <條件>    else   <表示式2>

3、多分支結構 :if---elif---else

      使用方式如下:

            if <條件1>:

               <語句塊1>

            elif<條件2>:

               <語句塊2>

            ............

            else:

               <語句塊N>

4、判斷條件及組合 :

           <               小於

           >               大於

          <=              小於等於

          >=              大於等於

           =               等於

         !=             不等於

5、例題:

score = eval(input('請輸入一個百分制成績:'))
if score > 90.0:
    grade = 'A'
elif score >=80.0:
    grade = 'B'
elif score >=70.0:
    grade = 'C'
elif score >=60.0:
    grade = 'D'
else:
    grade = 'E'
print("對應的五進製成績是:{}".format(grade))

6、判斷條件及組合:

      (1)python語言中,任何非零的數值、非空的資料型別都等價於true0或空型別等價於False,可以直接作用判斷條件。

      (2)python語言使用保留字not、and和or對條件進行邏輯運算組合。保留字not表示單個條件的“否”關係,and表示多個條件之間的“與”關係,or表示多個條件之間的“或”關係。

三、程式的迴圈結構:

1、遍歷迴圈 :for

   (1)使用方式如下:

            for  <迴圈變數>  in  <遍歷結構>:

                   <語句塊>

  (2)對於字串,可以逐一遍歷字串的每個字元,基本使用方式如下:

            for  <迴圈變數>  in  <字串變數>:

                   <語句塊>

for c in "pythonQQQ":
    print(c)

 (3)使用range()函式,可以指定語句塊的迴圈次數,基本使用方式如下:

            for  <迴圈變數>  in  range(<迴圈次數>):

                   <語句塊>

for c in range(10):
    print(c)

 (4)遍歷迴圈還有一種擴充套件模式,基本使用方式如下:

            for  <迴圈變數>  in  <遍歷結構>:

                   <語句塊1>

            else:

                   <語句塊2>

當for迴圈正常執行後,才會執行else裡面的語句內容。

2、無限迴圈 :while

   (1)使用方式如下:

            while  <條件>  :

                   <語句塊>

n=0
while n<10:
    print(n)
    n=n+3

   (2)while程式流程:

            當程式執行到while語句時,判斷條件如果為true,執行迴圈體語句,語句結束後返回再次判斷while語句的條件;

            當條件為false時,迴圈終止,執行與while同級別縮排的後續語句。

   (3)無限迴圈也有一種使用保留字else的擴充套件模式,使用方式如下:

            while  <條件>  :

                   <語句塊1>

            else:

                   <語句塊2>          

s,idx = 'PY',0
while idx<len(s):
    print("迴圈執行中:"+s[idx])
    idx += 1
else:
    s="迴圈正常結束"
print(s)

3、迴圈控制 :break和continue

    輔助迴圈控制的保留字:break和continue。

            break用來跳出最內層for或while迴圈,脫離該迴圈後程序從迴圈後的程式碼繼續執行。

while True:
    s=input("請輸入一個名字(按Q退出):")
    if s == "Q":
        break
    for c in s:
        if c == "E":
            break
        print(c,end="")
print("程式退出")

            continue用來結束當前當次迴圈,即跳出迴圈體中下面尚未執行的語句,但不跳出當前迴圈。

for s in "PYTHON":
    if s == "Y":
        continue
    print(s,end="")

continue語句和break語句的區別是:continue語句只結束本次迴圈不終止整個迴圈的執行,而break具備結束迴圈的能力。

 

四、程式的異常處理:

 

python語言使用保留字try和except進行異常處理,基本的語法格式如下:

      try:

           <語句塊1>

      except:

           <語句塊2>

語句塊1是正常執行的程式內容,當執行這個語句塊發生異常時,則執行except保留字後面的語句塊2。

try:
    n=eval(input("請輸入一個數字:"))
    print("請輸入數字的3次方值為:",n**3)
except:
    print("輸入錯誤,請輸入一個數字!")

五、例項解析---猜數字遊戲:

import random
target = random.randint(1,1000)
count = 0
while True:
    try:
        guess = eval(input('請輸入一個猜測整數(1至1000):'))
    except:
        print('輸入有誤,請重試不計入猜測次數哦!')
        continue
    count = count + 1
    if guess > target:
        print('猜大了')
    elif guess<target:
        print('猜小了')
    else:
        print('猜對了')
        break
print("此輪的猜測次數是:",count)

六、習題四:

(1)Python中的合法賦值:x=y=z=1  x,y=y,x   

(2)Python中的合法比大小:(‘3’,‘2’)<(‘a’,‘b’)   

                                               ASSCII碼:48->57  ===>   0到9數字

                                                                  65->90  ===>   26個大寫字母

                                                                  97->122 ===>  26個小寫字母

(3)要實現一個計數迴圈使用for比使用while的優點有不需要在迴圈中維護計數器

(4)濫用try-except型別語句的可能的後果有:影響程式碼的可讀性、增加了程式碼的維護難度

(5)break和continue的區別是:continue結束本次迴圈,不終止整個迴圈執行,而break具備結束迴圈的能力

(6)異常處理機制中try的作用是:負責處理確定異常處理的範圍

(7)pass空語句可以保持程式結構的完整性,不做任何事情,只是佔位語句

(8)異常處理機制也要結合函式設計統籌應用