集合与条件、循环语句
集合
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
集合操作符和关系符号:
常用操作
s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove('H') len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制
条件语句
如果if条件(在fi和冒号之间的表达式)为真,执行后面的语句块;如果为假,则执行else后面的语句块:
import getpass user_name='Li' pass_word=("123") username=input("username;") password=getpass.getpass("password:") if user_name==username and pass_word==password: print("Welcome {name} to login...".format(name=user_name)) else: print("Invalid username or password")
如果要检查多个条件,就可以使用elif:
#猜数字 范围1-10 num=6 guess=int(input('Please input your guess num:')) if guess>num: print('bigger!') elif guess<num: print("smaller!") else: print("You done a great job!")
循环
continue:跳出当前循环,进入下一轮循环
break:结束(跳出)循环
while循环
#猜数字 范围1-10 超过三遍自动退出 num=6 count=0 #添加一个计数器 while count<3: guess=int(input('please input your guess:')) count += 1 if 0<guess<11: if guess>num: print('bigger!') elif guess<num: print("smaller!") else: print("You done a great job!") break else: print('over the range!') else: print('你的机会以用完!')
for循环
while语句非常灵活。它可以用来在任何条件为真的情况下重复执行一个代码块,但当要为一个集合(序列和其他可迭代对象)的每个元素都执行一个代码块时,我们就要用到for循环了。
for i in range(10): if i%2==0: print(i) 0 2 4 6 8
enumerate:
枚举为可迭代的对象添加序号
list=[1,3,5,6,7] for k,v in enumerate(list,1): #从1开始 print(k,v)