![](/img/1__TmOSaHMdBCN6V5be4HpPQg.jpeg)
這系列的學習筆記是跟著彭彭老師的 youtube 教學影片操作的,個人覺得老師講的很清楚明暸,如果有學習 python 的需求可以參考老師的教學。
上週簡單介紹部分的資料型別,本週要來介紹集合與字典
集合(set):是一群資料組合, 無順序性,可以用 in, not in 判斷資料是否存在
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| data = {1,2,3}
print(3 in data)
print(8 in data)
print(8 not in data)
|
交集:在兩個集合中取出相同的資料
1 2 3 4 5 6 7 8 9
| data1 = {1,2,3}
data2 = {3,4,5}
data3 = data1&data2
print(data3)
|
聯集:取出兩個集合的所有資料,但不重複
1 2 3 4 5 6 7 8 9
| data1 = {1,2,3}
data2 = {3,4,5}
data3 = data1|data2
print(data3)
|
差集:從 data1 減去與 data2 重疊的部分
1 2 3 4 5 6 7 8 9 10 11 12
| data1 = {1,2,3}
data2 = {3,4,5}
data3 = data1-data2
print(data3)
set([1, 2])
|
反交集:取兩個集合中,不重疊的地方
1 2 3 4 5 6 7 8 9
| data1 = {1,2,3}
data2 = {3,4,5}
data3 = data1^data2
print(data3)
|
可以將字串拆解為集合 set 但不會按照順序,重複的不會重複放
1 2 3 4 5 6
| data = set("nobody")
print(data)
set(['y', 'b', 'd', 'o', 'n'])
|
字典(dictionary)
個人覺得比較像 javaScript 物件,鍵值對,一個 key 對一個 value
1 2 3 4 5 6 7 8 9 10 11 12
| dic={'jack':'30','alice':'28'}
print(dic['jack'])
dic['jack'] = '99'
print(dic['jack'])
|
in, not in 可以檢查是否有這個 key
1 2 3 4 5 6 7 8 9 10
| dic={'jack':'30','alice':'28')
print('jack' in dic)
print('mike' in dic)
|
del 刪除鍵值對 (key,value)
1 2 3 4 5 6 7 8
| dic={'jack':'30','alice':'28'}
del dic['jack']
print(dic)
{'alice': '28'}
|
將列表轉換為字典
1 2 3 4 5 6 7
| dic={i:i*2 for i in [1,2,3]}
print(dic)
{1: 2, 2: 4, 3: 6}
|
流程判斷式 if 要用縮排,記得條件式後面要記得加冒號(沒加會報錯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| x = input('please enter number')
x = int(x)
if x>200:
print('bigger than 200')
elif x>100:
print('bigger than 200, less than 100')
else:
print('less than 100')
|
四則運算(加減乘除)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| n1=int(input("please enter number1: "))
n2=int(input("please enter number2: "))
cal=input("Calculation: ")
if cal=="+":
print(n1+n2)
elif cal=="-":
print(n1-n2)
elif cal=="\*":
print(n1\*n2)
elif cal=="/":
print(n1/n2)
else:
print('oops')
please enter number1: 2 please enter number2: 3 Calculation: %
oops
|
while 若不滿足條件,就繼續執行,直到滿足條件為止,要小心無窮迴圈
1 2 3 4 5 6 7 8 9
| n=1
while n<=5:
print(n)
n+=1
|
for 迴圈 for in 將列表或字串中的項目或是單字逐一處理
1 2 3 4 5 6
| for x in [1,2,3]:
print(x)
|
使用 range 可以自動幫你生成列表(從 0 開始)
1 2 3 4 5 6 7
| for x in range(3):
print(x)
等於
for x in [0,1,2]:
|
如果傳入兩個值,則第一個參數是起始值,第二個參數是結束值,就會從起始值生成,到結束值的前一個停止
1 2 3
| for x in range(3, 6): print(x)
|
for in 也可以用在字串上,會逐一印出每個單字
1 2 3 4 5 6 7 8 9 10
| for x in 'super':
print(x)
s u p e r
|
不得不說相較於 javascript,python 的語法真的簡潔蠻多的,而且提供了滿多便民的方法(?