python | 控制流語句-順序結構與分支結構


 

1 程序流程圖

程序流程圖是指用一系列圖形、流程線和文字說明描述程序的基本操作和控制流程,它是程序分析和過程描述的最基本方式。流程圖基本元素共有7種,其中,連接點將多個流程圖連接在一起,常用於將較大的流程圖分隔為若干部分。

 

2 表達式

2.1 定義

數據和算術、關系、邏輯運算符的這一組合邏輯序列為表達式,它又可以作為下一步算術、邏輯運算的參與數據,即表達式可以組合構成更為復雜的表達式。

 

2.2 分類

python中的表達式,常見的有以下幾種分類:

  • 算術表達式:通過加、減、乘、除運算等符號,將數據做相應數學計算的組合序列是算術表達式
  • 邏輯表達式:通過與(and)、或(or)、非(not)等邏輯運算符組合成的是邏輯表達式
  • 關系表達式:表示大小關系運算符連接的表達式叫關系表達式,可以比較數據、表達式間的大小關系
  • 條件表達式:滿足特定條件才執行的表達式叫條件表達式,也稱三元表達式

不同分類的表達式不是孤立存在的,而是組合構成更為復雜的表達式。

# 算術表達式
12 + 13

# 邏輯表達式
(2 > 3) and (3 > 4)

# 關系表達式
15 > 12

# 條件表達式
# 格式1:x if condition else y      判斷為True返回值x,判斷為False返回值y
a = eval(input('請輸入一個數字'))    
1 if a > 0 else 0

# 格式2:(x, y)[condition]          判斷為True返回值x,判斷為False返回值y
b = eval(input('請輸入一個數字'))     
(0, 1)[b > 0]
    
# 復雜表達式的組合
a=1
b=a+1
if b>10:
    print(a*b)

 

2.3 運算符

值得特別指出的是,條件表達式中可以使用多種運算符,且運算符可以級聯使用,常見的有:

  • 算術運算符:+、-、*、/、//、%、**
  • 關系運算符:<、>、<=、>=、==、!=
  • 測試運算符:in、not in、is、is not
  • 邏輯運算符:and、or、not(注意惰性原則)
  • 位運算符:~、&、|、^、《、》
  • 矩陣乘法運算符:@

但需要特別注意的是,條件表達式中,不能有賦值操作符(=)。

 

2.4 語句

通常,一個任務不能就只用一個復雜的表達式一步完成,可以將其不斷的拆分,分解成若干個功能單一、清晰的小表達式,這樣一個大型任務就變成若干個小任務的組合,每一次計算機執行一個功能單一的表達式,將所有的表達式都執行完畢,大任務也就完成了。我們稱這細分出來的每個(小)功能單一的表達式為語句,一般情況下語句在程序文件里各自占一行,通常以某標點符號結尾,例如C語言和python語言都是以分號(;)作為語句的結尾標識符,Python程序的語句末尾的分號可寫可不寫。

語句是程序的基本元素,表達式和數據是語句的基本組成元素。一般情況下語句作為程序的一個語義單元,實現一定的功能,例如賦值語句實現對變量的賦值,打印語句print實現打印信息功能,if分支語句實現二選一功能選擇,而for和wihle循環體語句實現重復操作功能,常見的函數則實現部分代碼可重復多次使用的功能,故語句是程序的基本組成單元(元素)。

綜上,語句和表達式的關系是表達式構成語句,表達式是語句的組成元素。語句代表一個細小任務或者說細小功能,幾者關系如下圖所示:

 

3 程序基本結構

程序的基本結構共有三種,「任何程序都可以由這三種基本結構組合來實現」。

  • 順序結構
  • 分支結構
  • 循環結構

 

3.1 順序結構

順序結構是程序按照線性順序,依次執行的一種運行方式,運行過程見下圖。

 

3.2 分支結構

分支結構又稱「選擇結構」,是根據條件判斷結果,而選擇不同向前執行路徑的一種運行方式,具體的,分支結構可以細分為單分支、雙分支、多分支和巢狀分支。

 

3.2.1 單分支

單分支只有一個if,沒有else:

  • 區間:語句塊在if條件表達式為True時才執行,所以又叫「真區間
  • 執行邏輯:if條件判斷為True,執行語句塊,反之不執行
# 單分支結構示例
# 任意輸入兩個數,按從小到大排列
a = eval(input('請輸入第一個數'))
b = eval(input('請輸入第二個數'))
if a > b:
    a, b = b, a   # 序列解包,交換兩個變量的值
print(a, b)

 

3.2.2 雙分支

雙單分支有一個if、一個else:

  • 區間:真區間(if區間)、假區間(else區間)
  • 執行邏輯:if判斷為True,執行真區間;if判斷為False,執行假區間
  • 簡寫格式:雙分支結構可以簡寫為:語句塊1 if 條件判斷 else 語句塊2(類似三元表達式)。if條件判斷為True,執行語句塊1;條件判斷為False,執行語句塊2
# 雙分支結構
# 任意輸入兩個數,按從小到大排列
a = eval(input('請輸入第一個數'))
b = eval(input('請輸入第二個數'))
if a > b:
    print(b, a)
else:
    print(a, b)

# 雙分支結構簡寫
# 任意輸入兩個數,按從小到大排列
a = eval(input('請輸入第一個數'))
b = eval(input('請輸入第二個數'))
print(b, a) if a > b else print(a, b)

 

3.2.3 多分支

多個雙分支組合就組成了多分支,它有多個if、一個else:

  • 區間:有無限多個真區間(if區間),一個假區間(else區間)
  • 執行邏輯:多分支中可以有無限個elif分支,但只執行一個elif,一旦一個elif分支執行結束,后面的所有分支既不會判斷也不會執行
# 多分支結構
# 將成績從百分制變換到等級制
socre = eval(input('請輸入你的成績'))
if socre > 100:
    print('成績必須小於100分,請重新輸入')
elif socre >= 90:
    print('A')
elif socre >= 80:
    print('B')
elif socre >= 70:
    print('C')
elif socre >= 60:
    print('D')
elif socre >= 0:
    print('E')
else:
    print('成績必須大於0分,請重新輸入')

 

3.2.4 巢狀分支

​巢狀分支也叫分支結構嵌套,通常由多個不同種類的分支結構嵌套而成。如上所示,就是一個典型的巢狀分支,共有3層,由單分支、雙分支、多分支嵌套而成。

  • 區間:可以有多個真區間(if區間),多個假區間(else區間)

  • 執行邏輯:從外到內,自上而下依次判斷執行

# 將成績從百分制變換到等級制
socre = eval(input('請輸入你的成績'))
if socre > 100 or socre < 0:
    print('輸入不正確,請重新輸入')
else:
    if socre >= 90:
        print('A')
    elif socre >= 80:
        print('B')
    elif socre >= 70:
        print('C')
    elif socre >= 60:
        print('D')
    else:
        print('E')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM