1、为什么要用循环?
循环是为了防止代码冗杂,减少做重复的事情
2、循环分类及区别
(1)while循环:
i = 1
while i <= 5:
print(i)
i+=1
#输出结果:
1
2
3
4
5
(2)for循环:
for i in range(10):
if i <= 5:
continue
print("test:",i)
#输出结果:
test: 6
test: 7
test: 8
test: 9
(3)while死循环:
i = 1
while i <= 5:
print(i)
#输出结果:
1
1
1
1
1
...
(4)for循环和while循环的区别
while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环.
1、集合特点:
(1)由不同元素组成
(2)无序
(3)集合中元素必须是不可变类型
2、集合的创建
s=set("hello")
#输出为:h e l o
说明: set方法相当于for循环遍历,且去掉重复的,只想做简单的去重操作,而不考虑元素索引位置的改变可以用集合来实现。
3、集合的魔法
(1)add()——魔法:添加集合,只能添加一个值
(2)clear()——魔法:清空集合
(3)update()——魔法:更新多个值,可以更新元组,列表,将原集合覆盖
(4)copy()——魔法:拷贝集合
(5)pop()——魔法:删除随机集合
(6)remove(x)——魔法:删除指定x,若x不存在,则会报错
(7)discard()——魔法:删除指定,但是不会报错
(8)两集合的交集::s1 & s2 = s1.intersection(s2)
(9)两集合的并集: s1 | s2 = s1.union(s2)
(10)两集合的差集:s1 - s2 = s1.difference(s2)
存在谁不存在谁,就用谁减谁
(11)两集合的交叉补集:(并集抠出相同的部分)
s1.symmertric_difference(s2) = s1 ^ s2
(12)判断两集合是否没有交集:s1.isdisjoint(s2),没有交集未True
(13)判断s1是否是s2的子集:s1.issubset(s2) 相当于s1 <= s2
(14)判断s1是否是s2的父集:s1.issupper(s2) 相当于s1 >= s2
(15)集合是可变类型,但是可以创建不可变集合用 frozenset()
4、应用实际
求两个列表中共有的部分
(1)不用集合方法:需要进行for循环
list1=[1,3,4,5,6]
list2=[2,3,4]
for i in list1:
if i in list2:
print(i)
#输出结果:
3
4
(2)用集合:转换成集合,直接求交集
list1=[1,3,4,5,6]
list2=[2,3,4]
s1=set(list1)
s2=set(list2)
s=s1&s2
print(s)
#输出结果:
3
4