Python 3.8从零开始学
上QQ阅读APP看书,第一时间看更新

3.1.5 成员资格

所谓成员资格,是指某个序列是否是另一个序列的子集,该序列是否满足成为另一个序列的成员的资格。

为了检查一个值是否在序列中,Python为我们提供了in这个特殊的运算符。in运算符和前面讨论过的运算符有些不同。in运算符用于检验某个条件是否为真,并返回检验结果,检验结果为真,则返回True,为假,则返回False。这种返回运算结果为True或False的运算符称为布尔运算符,返回的真值称为布尔值。关于布尔运算符的更多内容会在后续章节中进行介绍。

下面看看in运算符的使用示例,在交互模式下输入:

>>> greeting='hello,world'
>>> 'w' in greeting   #检测w是否在字符串中
True
>>> 'a' in greeting
False
>>> users=['xiaomeng', 'xiaozhi', 'xiaoxiao']
>>> 'xiaomeng' in users  #检测字符串是否在字符串列表中
True
>>> 'xiaohuai' in users
False
>>> numbers=[1, 2, 3, 4, 5]
>>> 1 in numbers  #检测数字是否在数字列表中
True
>>> 6 in numbers
False
>>> eng='** Study python is so happy!**'
>>> '**' in eng  #检测一些特殊字符是否在字符串中
True
>>> '$' in eng
False
>>> 'a' in numbers
False
>>> 3 in greeting
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'in <string>' requires string as left operand, not int

由上面的输出结果可以看到,使用in可以很好地检测字符或数字是否在对应的列表中。

通过代码示例同时也可以看出,数字类型不能在字符串类型中使用in进行成员资格检测,检测时会报错误;字符串类型可以在数字列表中使用in进行成员资格检测,检测时不会报错误。