上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进行成员资格检测,检测时不会报错误。