len(S) -> int
说明:集合基数,集合S中元素的个数
set([obj]) -> set
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def main():
"""Main function."""
# 三次同用户名密码错误将会被锁定
crack_record = set()
for i in xrange(3):
login_name = raw_input('please input login name: ')
login_pass = raw_input('please input login pass: ')
if not (login_name == 'root' or login_pass == 'root'):
crack_record.add(login_name)
else:
print 'Found Notice: welcome %s to login in!' % (login_name)
break
else:
# 判断是否是同用户名
if len(crack_record) == 1:
locked_name = crack_record.pop()
print ','.join([
'Found Notice: three password error',
'accound %s be locked!' % (locked_name)
])
else:
print 'Found Notice: three password error, no times to try again!'
del i
if __name__ == '__main__':
main()
说明:可变集合工厂函数,obj必须是支持迭代的,由obj中的元素创建集合,否则创建一个空集合
frozenset([obj]) -> frozenset
说明:不可变集合工厂函数,执行方式和set()方法相同,但是它返回的是不可变集合
S.add(obj) -> None
说明:加操作,将obj添加到S
S.pop() -> object
说明:Pop操作,移除并返回s中的第一个元素
S.clear() -> None
说明:清除操作,移除s中的所有的元素
S.remove(obj) -> None
说明:删除操作,将obj从s中删除,如果s中不存在obj,则会引发KeyError的错误
S.discard(obj) -> None
说明:丢弃操作,remove()的友好版本,如果s中存在obj,则从s中删除它,而不会抛出异常
S.issubset(t) -> s<=t
说明:如果s是t的子集,则返回True,否则返回False
S.issuperset(t) -> s>=t
说明:如果s是t的超集,则返回True,否则返回False
S.union(t) -> s|t
说明:返回一个新的集合,该集合是s和t的并集
S.intersection(t) -> s&t
说明:返回一个新的集合,该集合是s和t的交集
S.difference(t) -> s-t
说明:返回一个新集合,该集合是s的成员,但不是t的成员
S.symmetric_difference(t) -> s^t
说明:返回一个新的集合,该集合是s或t的成员,但是不是s和t的共有成员
S.copy() -> set
说明:返回一个新的集合,它是集合s的浅拷贝
S.update(t) -> s|=t
说明: 修改操作,将t中的成员添加到S
S.intersection_update(t) -> s&=t
说明:交集修改操作,S中仅包括s和t中公有的成员
S.difference_update(t) -> s-=t
说明:差修改操作,s中包含仅属于s但不属于t的成员
S.symmetric_difference_update(t) -> s^=t
说明:对称差分修改操作,S中仅属于S或仅属于t的成员