为了检查某个值是否属于一个序列,可以使用in运算符。这个运算符在第3章的时候讲解条件语句时曾经提到过,但没有深入的讲解,因为那时候还没有讲到序列和其他的集合。
这个运算符是布尔运算符,也就是说,如果某个值属于一个序列,那么in运算符返回True,否则返回False。
[例 4.24] 在这个例子中利用in运算符判断一个字符串是否属于另一个字符串,以及一个值是否属于一个序列。
str = "I love python" print("python" in str) #输出结果:True print("hello" in str) #输出结果:False names = ['小黑','小白','小红'] print('小黑'in names) #输出结果:True print('小青'in names) #输出结果:False输出结果:
True False True False在上面的代码中,通过in运算符,检查了"python"和"hello"是否在str中,很显然,str包含了"python",而"hello"并不属于str,所以前者返回True后者返回False。后面的序列中也是一样的,"小黑"包含在names序列中,而"小青"不在names序列中,所以前者返回True,后者返回False。
[例 4.25] 本例要求从控制台输入用户名和密码,并通过in运算符在account序列中查找是否存在用户名和密码,如果存在,输出"登录成功";如果不存在,输出"登录失败"。其实account就相当于一个表,里面保存了多条用户记录。
account = [ #用于保存多条用户记录的序列 ['good','123456'], ['ajdbg','654321'], ['apple','888888'], ['orange','999999'], ['hello','666888'] ] username = input('请输入用户名:') #用户输入的用户名 password = input('请输入密码:') #用户输入的密码 if [username,password] in account: #判断用户输入的用户名和密码是否在account序列中 print('登录成功') #如果在输出这行 else: print('登录失败') #如果不在则输出这行输出结果:
请输入用户名:good 请输入密码:123456 登录成功 请输入用户名:good 请输入密码:888888 登录失败从上面代码可以看到,account序列的每一个元素也是一个序列(一个二维序列),通过in运算符判断某个序列[username,password]是否属于account序列。如果属于,则输出登录成功,如果不属于,则输出登录失败。输入错误的账号和密码,也同样会输出登录失败。