計算機之所以能做很多自動化的任務,因為它可以自己做條件判斷。
比如,輸入使用者年齡,根據年齡列印不同的內容,在python程式中,用if
語句實現:
age = 20
if age >= 18:
print('your age is', age)
print('adult')
根據python的縮排規則,如果if
語句判斷是true
,就把縮排的兩行print語句執行了,否則,什麼也不做。
也可以給if
新增乙個else
語句,意思是,如果if
判斷是false
,不要執行if
的內容,去把else
執行了:
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
注意不要少寫了冒號:
。
當然上面的判斷是很粗略的,完全可以用elif
做更細緻的判斷:
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
elif
是else if
的縮寫,完全可以有多個elif
,所以if
語句的完整形式就是:
if 《條件判斷1>:
《執行1>
elif 《條件判斷2>:
《執行2>
elif 《條件判斷3>:
《執行3>
else:
《執行4>
if
語句執行有個特點,它是從上往下判斷,如果在某個判斷上是true
,把該判斷對應的語句執行後,就忽略掉剩下的elif
和else
,所以,請測試並解釋為什麼下面的程式列印的是teenager
:
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
if
判斷條件還可以簡寫,比如寫:
if x:
print('true')
只要x
是非零數值、非空字串、非空list等,就判斷為true
,否則為false
。
最後看乙個有問題的條件判斷。很多同學會用input()
讀取使用者的輸入,這樣可以自己輸入,程式執行得更有意思:
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00後')
輸入1982
,結果報錯:
traceback (most recent call last):
file "", line 1, in
typeerror: unorderable types: str() > int()
這是因為input()
返回的資料型別是str
,str
不能直接和整數比較,必須先把str
轉換成整數。python提供了int()
函式來完成這件事情:
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00後')
再次執行,就可以得到正確地結果。但是,如果輸入abc
呢?又會得到乙個錯誤資訊:
traceback (most recent call
last):
file "", line 1, in
valueerror: invalid literal for
int() with base 10: 'abc'
原來int()
函式發現乙個字串並不是合法的數字時就會報錯,程式就退出了。
如何檢查並捕獲程式執行期的錯誤呢?後面的錯誤和除錯會講到。
小明身高1.75,體重80.5kg。請根據bmi公式(體重除以身高的平方)幫小明計算他的bmi指數,並根據bmi指數:
用if-elif
判斷並列印結果:
條件判斷可以讓計算機自己做選擇,python的if...elif...else很靈活。
Python 條件判斷
python 之if語句 計算機之所以能做很多自動化的任務,因為它可以自己做條件判斷。比如,輸入使用者年齡,根據年齡列印不同的內容,在python程式中,可以用 if語句 實現 age 20 if age 18 print your age is age print adult print end ...
Python 條件判斷
python if語句if 條件判斷1 執行1 elif 條件判斷2 執行2 elif 條件判斷3 執行3 else 執行4 這個給兩個例子想必大家就能懂了 bmi指數 即身體質量指數,簡稱體質指數又稱體重,英文為body mass index,簡稱bmi bmi是用體重公斤數除以身高公尺數平方得出...
Python 條件判斷
python程式設計中if語句用於控制程式的執行,基本形式為 if 判斷條件 執行語句 score 80 if score 80 print score is a else print score is not a 注意 print語句要注意縮排,不要tab和空格混用,否則回變編譯報錯 案例2 成績...