讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 7.9 使用 not >

7.9 使用 not

還可以用 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 章中,我們見過諸如 +、-、* 和 / 等數學運算符。在本章中,我們瞭解了比較操作符 <、>、== 等。andornot 關鍵字也是操作符。它們被稱為邏輯操作符(logical operator)。這些操作符用來修改比較,可以結合兩個或多個比較(andor),或者取反(not)。

表 7-1 列出了目前為止我們討論過的所有操作符。

表 7-1 數學和比較操作符列表

操作符名字作用數學運算符=賦值將一個值賦至一個名(變量)+加兩個數相加。這個操作符也可以用來連接字符串-減兩個數相減+=自增將一個數增 1-=自減將一個數減 1*乘兩個數相乘/除兩個數相除。如果兩個數都是整數,結果只是整數商而沒有餘數%取余得到兩個數整除的餘數**求冪將一個數自乘得到冪。這個數以及冪可以是整數或浮點數比較操作符==相等檢查兩個東西是否相等小於檢查第一個數是否小於第二個數>大於檢查第一個數是否大於第二個數>小於或等於檢查第一個數是否小於或等於第二個數>=大於或等於檢查第一個數是否大於或等於第二個數!=不等於檢查兩個東西是否不相等(這兩個操作符都可以使用)>

你可能想在這一頁上夾個書籤,這樣下次就能很容易地查閱這個表了。

你學到了什麼

在這一章,你學到了以下內容。

  • 比較測試和關係操作符。

  • 縮進和代碼塊。

  • 使用 andor 結合測試。

  • 使用 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!」之類的消息。