還可以用 not
把比較倒過來,表示相反的邏輯。
color = raw_input(\"Enter your favorite color: \")if color == \"red\" or color == \"blue\" or color == \"green\": print \"You are allowed to play this game.\"else: print \"Sorry, you can\'t play the game.\"
這行代碼
if not (age < 8):
與這行代碼:
if age >= 8:
兩者的含義是一樣的。在這兩種情況下,如果年齡是 8 歲或者超過 8 歲就會執行代碼塊,如果年齡小於 8 就不會執行。
第 4 章中,我們見過諸如 +、-、* 和 / 等數學運算符。在本章中,我們瞭解了比較操作符 <、>、== 等。and
、or
和 not
關鍵字也是操作符。它們被稱為邏輯操作符(logical operator)。這些操作符用來修改比較,可以結合兩個或多個比較(and
和 or
),或者取反(not
)。
表 7-1 列出了目前為止我們討論過的所有操作符。
表 7-1 數學和比較操作符列表
你可能想在這一頁上夾個書籤,這樣下次就能很容易地查閱這個表了。
你學到了什麼
在這一章,你學到了以下內容。
比較測試和關係操作符。
縮進和代碼塊。
使用
and
和or
結合測試。使用
not
來進行反向測試。
測試題
1. 運行這個程序會得到什麼輸出:
my_number = 7if my_number < 20: print \'Under 20\'else: print \'20 or over\'
2. 基於第一個問題中的程序,如果把 my_number
改為 25,輸出會是什麼?
3. 要檢查一個數是否大於 30 但小於或等於 40,要用哪種 if
語句?
4. 要檢查用戶輸入的字母「Q」是大寫還是小寫,要使用哪種 if
語句?
動手試一試
1. 一家商場在降價促銷。如果購買金額低於或等於 10 元,會給 10% 的折扣,如果購買金額大於 10 元,會給 20% 的折扣。編寫一個程序,詢問購買價格,再顯示折扣(10% 或 20%)和最終價格。
2. 一個足球隊在尋找年齡在 10 到 12 歲之間的小女孩加入。編寫一個程序,詢問用戶的年齡和性別(m 表示男性,f 表示女性)。顯示一條消息指出這個人是否可以加入球隊。
額外提示:要合理地建立程序,如果用戶不是女孩就不必詢問年齡。
3. 你在長途旅行,剛到一個加油站,距下一個加油站還有 200 km。編寫一個程序確定是不是需要在這裡加油,還是可以等到下一個加油站再加油。
這個程序應當問下面幾個問題。
你的油箱有多大(單位是升)?
油箱有多滿(按百分比,例如,半滿就是 50%)?
你的汽車每升油可以走多遠(km)?
輸出應該像這樣:
Size of tank: 60percent full: 40km per liter: 10You can go another 240 kmThe next gas station is 200 km awayYou can wait for the next station.
或
Size of tank: 60percent full: 30km per liter: 8You can go another 144 kmThe next gas station is 200 km awayGet gas now!
額外提示:程序中包含一個 5 升的緩衝區,以防油表不准。
4. 建立一個程序,用戶必須輸入密碼才能使用這個程序。你當然知道密碼(因為它會寫在你的代碼中)。不過,你的朋友要得到這個密碼就必須問你或者直接猜,也可以學習足夠的 Python 知識查看代碼來找出密碼!
對程序沒什麼要求,可以是你已經編寫的程序,也可以是一個非常簡單的程序,只在用戶輸入正確的口令時顯示一條「You\'re in!」之類的消息。