2019年6月3日 星期一

Python 自學方案- Step(六)

if判斷式,可以依據程式不同條件的需求,來執行不同的程式碼,其語句如下:

if 判斷式:
    # 如果判斷式成立,就會執行這段程式碼,但記得縮排,否則將出現錯誤。

如下: 由於 Print("A>5")沒有縮排,執行後就會出現錯誤訊息

Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10
>>> if a>15:
... print ("A>15")
  File "", line 2
    print ("A>15")
        ^
IndentationError: expected an indented block
>>>

判斷式符合,且 Print("A>5")有正確縮排,就會正常執行

Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=20
>>> if a>15:
...     print("A>15")
...
A>15

可以讓程式更完整,增加 else : ,如下:

Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10
>>> if a>15:
...     print("A>15")
... else:
...     print("A<15 font="">
...
A<15 font="">
>>>

如果有多個判斷式,可以增加 elif: 如下

if 判斷式1:
    # 如果判斷式1成立,就會執行這段程式

elif 判斷式2:
    # 如果判斷式2成立,就會執行這段程式碼,依據需要可以有多個elif

else: 
    # 如果前面的判斷式都不成立,就會執行這段程式碼

我們可以寫一個計算折扣的程式
price=600
discount=0
if price>1000 :
    discount=0.9
elif price<=1000 and price>500:
    discount=0.95
else:
    discount=1

print(f'折扣後價錢= {price*discount}')

#***************執行結果**********************

折扣後價錢= 570.0


由於price=600,是固定的,要計算還要改程式,有點麻煩,可以把它修改成讓使用者自行輸入價錢後自動計算,如下
input 函式是讓使用者可以輸入,透過input輸入都會變成文字型態,所以要在之前增加 int(),轉成數字才能運算。

price=int(input('請輸入購買價格= '))

discount=0
if price>1000 :
    discount=0.9
elif price<=1000 and price>500:
    discount=0.95
else:
    discount=1

print(f'折扣後價錢= ${price*discount}')

#***************執行結果**********************

請輸入購買價格= 2000
折扣後價錢= $1800.0


我們可以寫一個稍微複雜的程式 ;計算BMI
利用 記事本 或是 Notepad++ 還是其他IDE軟體撰寫,存成BMI.py
在命令提示字元內執行 python BMI.py即可執行,程式碼如下
讓使用者輸入 身高及體重,計算後判斷BMI值,並將結果顯示於螢幕中

print('***************** BMI 計算 *****************')
height=int(input('請輸入身高(cm): '))
body_weight=int(input('請輸入體重(kg): '))
BMI=body_weight/((height/100)**2)
if BMI<=15:
    print(f'BMI= {BMI} , 非常嚴重的體重不足')
elif BMI<=16 and BMI>15 :
    print(f'BMI= {BMI} , 嚴重體重不足')
elif BMI<=18.5 and BMI>16 :
    print(f'BMI= {BMI} , 體重過輕')
elif BMI<=25 and BMI>18.5 :
    print(f'BMI= {BMI} , 體重正常')
elif BMI<=30 and BMI>25 :
    print(f'BMI= {BMI} , 體重過重')
elif BMI<=35 and BMI>30 :
    print(f'BMI= {BMI} , 肥胖I級(中等肥胖)')
elif BMI<=40 and BMI>35 :
    print(f'BMI= {BMI} , 肥胖II級(嚴重肥胖)')
else:
    print(f'BMI= {BMI} , 肥胖III級(非常嚴重肥胖)')

#***************執行結果**********************

***************** BMI 計算 *****************
請輸入身高(cm): 162
請輸入體重(kg): 56
BMI= 21.338210638622158 , 體重正常


程式還可以寫得更完整,如判斷使用者輸入的是否符合我們的需求cm 或是kg


沒有留言: