狠狠撸

狠狠撸Share a Scribd company logo
Python分支作業
Revised on March 8, 2020
? 結構化程式設計
? 條件運算式
? 選擇結構
? 單向選擇
? 雙向選擇
? 巢狀選擇
? 多向選擇
? Python語言同時支援多種撰寫方式,包括物件導向、命令列、程序導
向的編寫方式(結構化程式設計)
? 「結構化程式設計」是透過程式的模組化和程式的結構化,來簡化程
式設計的流程,降低邏輯錯誤發生的機率
? 結構化程式設計是採用由上而下(Top-down)的分析模式,將程式中有
獨立功能的程式區塊分割出來使成為「模組」(Module),這些模組最
後再組合成?個?的完整程式軟體
? 結構化程式設計使用循序結構(sequence)、分支結構(branch)、及
重複結構(iteration)這三個基本流程架構來設計程式
? 程式最基本架構是由上而下,??接著??執?的「循序結構」
結構化程式設計 1/2
? 「分支結構」或「選擇結構」會依據條件的不同而執?不同的程式區塊
? 「重複結構」流程會在條件成立的情況下反覆執?相同的程式區塊
? Python中能產生條件的運算式有「關係運算式」和「邏輯運算式」。
運算式的結果只有條件成立與條件不成立兩種情況,由布林值來記錄
運算結果
? 運算結果的布林值為True,表示條件成立;運算結果的布林值為
False,表示條件不成立
? Python布林(bool)資料型別所提供的值為True和False,若是將布林
值進?整數運算時,True會轉成「1」,False會轉成「0」
結構化程式設計 2/2
運算子 說明 實例 運算結果
== 左側運算元與右側運算元是否相等
4 + 2 == 1 + 5 True
15 == 3 False
!= 左側運算元與右側運算元是否不相等
2 * 3 != 3 * 2 False
7 != 9 True
> 左側運算元是否大於右側運算元
12 > 10 True
6 * 2 > 3 * 4 False
< 左側運算元是否小於右側運算元
8 < 9 True
3 < 9 – 6 False
>= 左側運算元是否大於或等於右側運算元
12 >= 10 True
6 * 2 >= 3 * 4 True
<= 左側運算元是否小於或等於右側運算元
8 <= 9 True
3 <= 9 - 6 True
關係運算子 1/2
4
關係運算子 2/2
5
? and (且)邏輯運算子
? 溫度(temper)高於30度而且不超過38度的條件式寫法
(temper > 30) and (temper <= 38)
邏輯運算子 1/4
6
A B A and B
True True True
True False False
False True False
False False False
? or (或)邏輯運算子
? 分數(score)必須介於0~100之間,則無效分數的條件式寫法
(score < 0) or (score > 100)
邏輯運算子 2/4
7
A B A or B
True True True
True False True
False True True
False False False
? not (相反)邏輯運算子
? not 運算子是單?的條件式運算,主要是把條件式的結果造成相反結果,
即True ? False,False ? True
邏輯運算子 3/4
8
A not A
True False
False True
邏輯運算子 4/4
9
? Python的if選擇結構敘述如下
? 單向選擇: if …
? 雙向選擇: if … else …
? 巢狀選擇: if … else …
? 多向選擇: if … elif … else
選擇結構 1/8
? 單向選擇if…
if (條件式):
執?區塊
? if敘述要以「:」冒號為結尾
? 選擇區塊要往後縮排4個空白字元
? 求num的絕對值
if (num < 0):
num = -num
? 成績在55分以上未達60分者,以60分計分
if (score >= 55) and (score < 60):
score = 60
print('加分後勉予及格')
選擇結構 2/8
True
if(條件式):
區塊False
? 雙向選擇if…else…
if (條件式):
執?區塊?
else:
執?區塊二
? 門票300元,未滿10歲兒童或65歲以上老年人半價
if (age < 10) or (age >= 60):
price = 150
else:
price = 300
選擇結構 3/8
12
True
if(條件式):
區塊1
False
區塊2
? 巢狀選擇if…else…
? 是指在if或else的程式區塊裡,還有if…或if…else…選擇結構
if (條件式1):
if (條件式2):
執?區塊1
else:
執?區塊2
else:
if (條件式3):
執?區塊3
else:
執?區塊4
選擇結構 4/8
if(條件式1):
True False
if(條件式2):
True False
if(條件式3):
True False
區塊4區塊3區塊2區塊1
? 給3個整數,使用巢狀選擇結構找出最?值
選擇結構 5/8
? 多向選擇if…elif…else
if (條件式1):
執?區塊1
elif (條件式2):
執?區塊2
...
elif (條件式N):
執?區塊N
else:
執?區塊N+1
選擇結構 6/8
if(條件式1):
True
if(條件式2):
False
True
if(條件式N):
False
True
區塊1
區塊2
區塊N
區塊N+1
? 設計程式,依據輸入的分數,顯示成績的等級及評語
選擇結構 7/8
16
分數 90-100 80-89 70-79 60-69 0-59
等級 A B C D F
評語 成就非凡 表現良好 差強人意 仍須努力 待加強
選擇結構 8/8
17
? 下列運算式的結果為何?
A. 0 or 5
B. bool(0)
C. bool(-1)
D. None is None
E. -5<0<5
A.5 B.False C.True D.True E.True
自我評量 1/4
? 下列條件式的運算結果,何者為False?
A. 15 > 13
B. 'c' < 'f'
C. 'a' == 97
D. (90 / 3 > 100) or (30 * 3 != 120)
自我評量 2/4
19
? 優待票的年齡條件為低於15歲或滿65歲,其條件的寫法為何?
A. age < 15 and age >= 65
B. age < 15 or age >= 65
C. age >= 15 or age < 65
D. age >= 15 and age < 65
自我評量 3/4
20
? 執?下列程式區段,a值結果為何?
a = 8
b = 0
if (a >= 6):
b = 9
if (b < 6):
a = -2
A. 9
B. 6
C. 8
D. -2
自我評量 4/4
21
? 使用巢狀if…else結構,設計?個可以判斷輸入非零的整數為正數或
負數,以及奇數或偶數的程式
提示:
? ?於零的數為正數
? 能被2整除的整數為偶數
實作練習I 1/2
22
? 參考程式
實作練習I 2/2
23
? 設計程式,輸入1~12之間的整數,當輸入值為3、4、5,顯示春天;
輸入值為6、7、8,顯示夏天;輸入值為9、10、11,顯示秋天;輸入
值為12、1、2,顯示春天
實作練習II 1/2
24
? 參考程式
實作練習II 2/2
25
? 設計程式,輸入綜合所得淨額,計算所得稅稅額
實作練習III 1/2
26
綜合所得淨額 稅率 累進差額
0~540,000 5% 0
540,001~1,210,000 12% 37,800
1,210,001~2,420,000 20% 134,600
2,420,001~4,530,000 30% 376,600
4,530,000~以上 40% 829,600
? 參考程式
實作練習III 2/2
27
? 某租車公司客戶租用車輛的費用結構如下
? 費用是每天100美元
? 如果車輛在晚上11點後返還,則客戶將被收取額外?天的費用
? 如果車輛是在星期天租的,那麼客戶即可享受10%的折扣
? 如果車輛是在星期四租的,那麼客戶即可以享受20%的折扣
實作練習1V
28
? 撰寫程式,輸入空氣品質指數,輸出空氣品質等級
實作練習V 1/2
輸入AQI(>=0):205
空氣品質:非常不健康
29
? 參考程式
實作練習V 2/2
30
? 寫?程式,輸入用電度數,輸出非夏?電費。(限制說明:用電度數必
須為>=0的浮點數)
實作練習VI 1/2
輸入用電度數(>=0):1005
電費=3321元
31
? 參考程式
實作練習VI 2/2
32

More Related Content

Python程式設計 - 分支作業