*前言:
一般程式語言的撰寫是由上往下依序(sequential)執行,當需要應付不同的環境條件變化而時,因此我們就需要引入 if...else 條件判斷(conditional statements)的概念。
如果xxx就yyy:
if xxx:
#須加冒號,若xxx為TRUE,則執行yyy
yyy
#縮排成為一個程式區塊(code block),使用 tab 空4格(沒有規定要空4格,只要統一即可)
如果xxx就yyy否則就zzz:
if xxx:
yyy
else:
zzz
隨堂練習:if else 入門條件判斷
請實作一個可以讓使用者輸入(input())
年紀並判斷是否可以投票的程式(記得轉成整數),印出是否可以投票結果。若使用者輸入大於等於 20 歲,則列印出 恭喜你可以投票!,否則則列印出 不好意思,你還不能投票喔!。
age = int(input('請輸入你的年齡'))
if age >20:
print('恭喜你可以投票!')
else:
print('不好意思,你還不能投票喔!')
*Python 邏輯運算 : 用於同時判斷多種條件或是僅有一種條件滿足時就觸發執行區塊。
1.運算子(operator)
加減乘除(+、-、*、/)
,對...取餘數(%)
等符號就是一種運算子。
2.邏輯運算子
and(且):要所有條件同時成立才會是 True
...條件1 and 條件2 同時成立才會是true
or(或):只要有任何其中一個條件成立,即成立
...條件1 or 條件2 只要其中有一個成立就會成立
not(非):可得到放於條件前之相反結果
age = 17
print(age > 10 and age <= 20) # True
print(age > 10 or age < 7) # True
print(age > 10 and age < 1) # False
print(age > 20 or age < 1) # False
*巢狀條件判斷
有時候在條件A成立後,才會進行條件B的判斷。
巢狀條件判斷(若是年紀沒有超過 20 歲則不會執行到性別的判斷):
先判斷年齡 age 才會進入 gender 判斷(縮排代表先判斷年齡 age 才會進入 gender 判斷)
if age > 20:
print('你已滿20')
if gender == 'male':
print('你是男性')
#完整程式碼(巢狀):
age = int(input('請你輸入你的年齡: ')
gender = input('請輸入你的性別: ')
if age >=20:
print('你已滿20歲')
if gender == '男性'
print('你是男性,執行到最後')
若使用者輸入 < 20 歲,但是男性,則巢狀不會印出你是男性!,因為第一個判斷不過,不會進到裡面。
#非巢狀程式碼(無論性別與年齡如何皆會進行兩個判斷):
if age > 20:
print('你已經滿 20 歲了')
if gender == 'male':
print('你是男性!')
隨堂練習:coupon 兌換碼兌換
你今天是一知名電商公司工程師,今天需要設定。請先設定一組兌換序號(coupon),序號為 coupon123,並提供使用者輸入兌換序號的提示,判斷兌換序號是否正確顯示:兌換序號錯誤或是兌換成功訊息。
coupon_code = 'coupon123'
user_input=input('請輸入兌換序號: ')
if user_input == coupon_code:
print('兌換成功')
else:
print('輸入錯誤')
*進階多重條件判斷
如果希望讓我們程式根據不同條件執行不同的區塊,還可以使用 if
elif
else
,看起來更簡潔,更容易閱讀(多條件判斷,有些程式語言是 else if 這樣寫法,在 python中是 elif)。
if 條件_1:
程式區塊_1
elif 條件_2:
條件區塊_2
else:
條件區塊_3
隨堂練習:偶數奇數判斷
讓使用者輸入一個大於 0 的數字(若使用者輸入等於則印出:請不要輸入零!若使用者輸入小於 0 則印出:請輸入一個大於 0 的數字!)。若使用者輸入大於 0 的整數則判斷是否為偶數,若是偶數則印出這是偶數,若是奇數則印出這是奇數!(小提示:可從是否可以讓 2 整除判斷是否為偶數)
input_num = int(input('請輸入大於0的整數: '))
if input_num ==0:
print('請不要輸入等於0的數字')
elif input_num <0:
print('請不要輸入小於0的數字')
else:
if input_num%2 ==0:
print('這是偶數')
else:
print('這是奇數')