要检查特定的值是否包含在序列中,可使用运算符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来检查指定的字符串是否为另一个字
符串的子串。
序列成员资格示例
# 检查用户名和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')
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar