開始
在前面分享過其他基礎了,今天分享下python的條件判斷。
在實際工作中,條件判斷是必不可少的,用來協助工作。
常用的比如說判斷年齡,根據年齡輸出不同內容,在python中,用if語句實現,舉例:
age =20
if age >=18:
print("你的年齡是",age)
print('成年')
python有獨有的縮進規則,按照規則,如果 if 語句判斷是 True,就把縮進的兩行 print 語句執行了,否則,什麼也不執行。
也可以添加一個 else 語句,如果 if 判斷是 False ,不執行 if 的內容,而是執行 else 的內容。
age =12
if age >=18:
print('你的年齡是',age)
print('成年')
else:
print('你的年齡是',age)
print('青少年')
注意:else後面不要忘記寫冒號:
python中還可以用 elif 做更詳細的判斷,舉例:
age =5
if age >=18:
print('你的年齡是',age)
print('成年')
elif age >=6:
print('你的年齡是',age)
print('青少年')
else:
print('小孩子')
elif 是 else if 的縮寫,所以可以有多個 elif ,所以 if 語句可以這樣寫:
age =5
if age >=18:
print('你的年齡是',age)
print('成年')
elif age >=6:
print('你的年齡是',age)
print('青少年')
elif age >=70:
print('老人')
else:
print('小孩子')
但是,if 語句執行有個特點,它從上往下判斷,如果在某個判斷上是 True,把這個判斷對應的語句執行完畢後,會忽略掉剩下的elif 和 else ,所以這條輸出語句的結果爲什麼是青少年呢?成年人不是也符合條件嗎?
# 測試
age =20
if age >=6:
print('青少年')
elif age >=18:
print('成年人')
elif age >=70:
print('老人')
else:
print('小孩子')
if 判斷條件可以簡寫,舉例:
if x:
print('True')
如果 x 是非零數值、非空字符串、非空 list 等,就判斷爲 True ,否則 就是 False.
input()輸入
大家都使用 input() 讀取用戶的輸入,由於可以自己輸入,所以程序會更有意思,舉例:
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00後')
輸入一個1982 ,結果報錯了:
Traceback (most recent call last):
File "D:/z-PycharmProjects/test1/tes9-10/test10-16.py", line 66, in <module>
if birth < 2000:
TypeError: '<' not supported between instances of 'str' and 'int'
爲什麼呢?因爲input() 返回的數據類型是 str ,str 不能直接和整數比較的,不是同一種數據類型就沒法比較,要比較就要把
str 轉換成整數。這裏用 int() 函數來解決這個問題,舉例:
# input 輸入(問題解決)
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00後')
重新運行,輸出正確不報錯,如果輸入abc,又會報錯:
Traceback (most recent call last):
File "D:/z-PycharmProjects/test1/tes9-10/test10-16.py", line 74, in <module>
birth = int(s)
ValueError: invalid literal for int() with base 10: 'abc'
這是因爲 int() 函數發現一個字符串不是合法是數字時就會報錯,然後程序結束運行。
結束
OK,今天的分享就到這裏,下次再抽空分享。