# 選擇結構 ###### tags: `Python` ## 比較運算子 > 比較運算子是選擇結構重要的一部分,他被用來指定判斷的方式,並根據結果輸出`Ture`or`False`;大致為以下六種: ### `<` 小於 ### `>` 大於 ### `<=` 小於等於 ### `>=` 大於等於 ### `==` 等於 ### `!=` 不等於 ## `if 函數` > 當需要在程式中加入選擇結構時,就需要利用`if 函數`來進行判斷;並可適時加入`else`,`elif`來達成所需效果: ```python= if 條件 : 條件成立的動作 ``` ### if + else 函數 ```python= if 條件 : 條件成立的動作 else : 條件不成立的動作 ``` ### if + elif + else 函數 ```python= if 第一種條件 : 第一種條件成立的動作 elif 第二種條件 : 第二種條件成立的動作 else : 條件都不成立的動作 ``` ### 範例:骨骼肌率計算器 ```python= SMMP = eval(input('請輸入骨骼肌肉量(單位:kg)')) weight = eval(input('請輸入體重(單位:kg)')) sex = input('請輸入性別 M/F') SMMP = SMMP / weight * 100 if sex == 'M' : print('%2.2f' % SMMP) if SMMP > 34 : print('健康') elif SMMP > 32 : print('標準') else : print('虛弱') elif sex == 'F' : print('%2.2f' % SMMP) if SMMP > 30 : print('健康') elif SMMP > 28 : print('標準') else : print('虛弱') else : print('性別輸入格式錯誤') ``` ## 邏輯運算子 > 在前述的`骨骼肌計算器`中,男性標準值為`32~34`,女性為`28~30`;但我在範例中分開使用了`if`,`elif`來做這件事,在`Python`中其實也可以寫成`SMMP > 34`,`34 > SMMP > 32`,`32 > SMMP`這種連續比較,或是使用`邏輯運算值`... ### `or` 其一成立即可 ### `and` 全部皆需成立 ### if + or ```python= if 第一種條件 or 第二種條件: 任一種條件成立的動作 ``` ### if + and ```python= if 第一種條件 and 第二種條件: 兩種條件皆成立的動作 ``` ### 範例:骨骼肌率計算器 ```python= SMMP = eval(input('請輸入骨骼肌肉量(單位:kg)')) weight = eval(input('請輸入體重(單位:kg)')) sex = input('請輸入性別 M/F') SMMP = SMMP / weight * 100 if sex == 'M' and 34 > SMMP >32: print('健康') elif sex == 'M' and SMMP > 34 : print('標準') elif sex == 'M' and SMMP < 32: print('虛弱') elif sex == 'F' and 30 > SMMP > 28: print('標準') elif sex == 'F' and SMMP > 30 : print('健康') elif sex == 'F' and SMMP < 28 : print('虛弱') elif sex != 'M' or sex != 'F' : print('性別輸入格式錯誤') ``` ## 巢狀結構 > 只要`if 函數`內包含另一個`if 函數`,就可被稱為巢狀結構 ### 範例:骨骼肌率計算器 ```python= SMMP = eval(input('請輸入骨骼肌肉量(單位:kg)')) weight = eval(input('請輸入體重(單位:kg)')) sex = input('請輸入性別 M/F') SMMP = SMMP / weight * 100 print('%2.2f' % SMMP) if sex == 'M' : print('%2.2f' % SMMP) if SMMP > 34 : print('健康') elif SMMP > 32 : print('標準') else : print('虛弱') elif sex == 'F' : print('%2.2f' % SMMP) if SMMP > 30 : print('健康') elif SMMP > 28 : print('標準') else : print('虛弱') else : print('性別輸入格式錯誤') ``` 這種就是簡易的巢狀結構,但要注意不要設計太多層,否則會造成判讀與維護的不易
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up