當前位置:
首頁 > 最新 > Python基礎教程 成員資格

Python基礎教程 成員資格

2.2.5 成員資格

要檢查特定的值是否包含在序列中,可使用運算符in。這個運算符與前面討論的運算符(如乘法或加法運算符)稍有不同。它檢查是否滿足指定的條件,並返回相應的值:滿足時返回True,不滿足時返回False。這樣的運算符稱為布爾運算符,而前述真值稱為布爾值。布爾表達式將在5.4節詳細介紹。

下面是一些in運算符的使用示例:

>>> permissions = "rw"

>>> "w" in permissions

True

>>> "x" in permissions

False

>>> users = ["mlh", "foo", "bar"]

>>> input("Enter your user name: ") in users

Enter your user name: mlh

True

>>> subject = "$$$ Get rich now!!! $$$"

>>> "$$$" in subject

True

開頭兩個示例使用成員資格測試分別檢查"w"和"x"是否包含在字元串變數permissions中。在UNIX系統中,可在腳本中使用這兩行代碼來檢查對文件的寫入和執行許可權。接下來的示例檢查提供的用戶名mlh是否包含在用戶列表中,這在程序需要執行特定的安全策略時很有用(在這種情況下,可能還需檢查密碼)。最後一個示例檢查字元串變數subject是否包含字元串"$$$",這可用於垃圾郵件過濾器中。

注意:相比於其他示例,檢查字元串是否包含"$$$"的示例稍有不同。一般而言,運算符in檢查指定的對象是否是序列(或其他集合)的成員(即其中的一個元素),但對字元串來說,只有它包含的字元才是其成員或元素,因此下面的代碼完全合理:

>>> "P" in "Python"

True

事實上,在較早的Python版本中,只能對字元串執行這種成員資格檢查——確定指定的字元是否包含在字元串中,但現在可使用運算符in來檢查指定的字元串是否為另一個字元串的子串。

代碼清單2-4所示的程序從用戶那裡獲取一個用戶名和一個PIN碼,並檢查它們組成的列表是否包含在資料庫(實際上也是一個列表)中。如果用戶名?PIN碼對包含在資料庫中,就列印字元串"Access granted"(if語句在第1章提到過,並將在第5章全面介紹)。

代碼清單2-4序列成員資格示例

# 檢查用戶名和PIN碼

database = [

["albert", "1234"],

["dilbert", "4242"],

["smith", "7524"],

["jones", "9843"]

]

username = input("User name: ")

pin = input("PIN code: ")

if [username, pin] in database: print("Access granted")

長度、最小值和最大值

內置函數len、 min和max很有用,其中函數len返回序列包含的元素個數,而min和max分別返回序列中最小和最大的元素(對象比較將在5.4.6節的「比較運算符」部分詳細介紹)。

>>> numbers = [100, 34, 678]

>>> len(numbers)

3

>>> max(numbers)

678

>>> min(numbers)

34

>>> max(2, 3)

3

>>> min(9, 3, 2, 5)

2

基於前面的解釋,這些代碼應該很容易理解,但最後兩個表達式可能例外。在這兩個表達式中,調用max和min時指定的實參並不是序列,而直接將數作為實參。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

如何將Python自然語言處理速度提升100倍:用spaCy/Cython加速NLP
大家都在學的編程語言 Python,可以用來幹什麼?

TAG:Python |