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