Python

講師の自我介紹

講師:蔡家澤

成功高中電研教學

暱稱:你。

學術力:Html-Css-Javascript  Python C++(都只會一點點)

個性:隨和(?

興趣:看小說

專長:跟最認真學子 蔡昀熹 下象棋

Python 安裝

首先,搜尋 python

並點擊"Downloads"

這裡可以直接下載

這裡可以選擇版本

按下"Download"後便會開始ㄉㄤ ㄌㄡˋ

之後點擊它

按下"Upgrade Now"

開始裝到電腦

成功下載完了

online gdb

First:

到google尋找online gdb

Second:

右上角的select選取Python3

這裡可以寫程式

程式寫好後按這裡執行

目錄

1:        輸出    print()

2:        變數宣告&資料型態

3:        註解

4:        輸入    input()

5:        f-string

6:        map input()

7:        運算

8:        邏輯運算

9:        list-set-tuple

10:      len()、sum()、max()、min()、in、not in

11:      dict

12:      for-while & break,pass,continue

輸出  print()

First 程式碼

print("Hello world")

print()

"Hello world"

輸出 () 內的東西

"Hello world" 這個字串

試試看

幫我輸出:

Hi!

輸入:

輸出:

1min

試試看-Ans

print("Hi!")

print("Hi!")

輸出

Hi!

輸出多個字串

print("apple","bag","cat")

在輸出多個字串時,

每個要輸出的字串用「,」分隔

字串間的分隔 sep=""

print("apple","bag","cat",sep=" ")
print("apple","bag","cat",sep="---")

執行結果

sep=""

可以讓你在字串間放入

"" 中的東西

執行結果

試試看

幫我輸出:

你~~~我~~~他

使用 sep=""

輸入:

輸出:

2min

試試看-Ans

print("你","我","他",sep="~~~")

sep""之間放入~~~

作為字串間的分隔字

Print()-多行的輸出

print("apple")
print("big")
print("cat")

當你把print寫成三行後,

他也會輸出三行。

執行結果

一行字的字尾 end=""

print("apple",end="***")
print("big",end="***")
print("cat",end="***")
print("apple",end="\n")
print("big",end="\n")
print("cat",end="\n")

end=""

讓你可以在一行字的尾部,

加上"    "的東東

執行結果

執行結果

試試看

幫我輸出:

A~~~B~~~C~~~

使用 end=""

輸入:

輸出:

5min

試試看-Ans

print("A",end="~~~")
print("B",end="~~~")
print("C",end="~~~")

分成三行print(),

把end=""中設為~~~

變數宣告 & 資料型態

資料型態 What? 程式中:
數值型態 整數(1、2、3......) 整數        int
數值型態 小數(1.1、1.2、1.5......) 浮點數    float
數值型態 真、假(True、False) 布林        bool
字串型態 字串(Hello、Hi、Meow) 字串        string
字串型態 字元(a,b,c,d,e,f,g) 字元        char
容器型態 字典 dict
容器型態 清單 list
容器型態 元組 tuple
容器型態 集合 set

變數宣告:

語法:  變數名(x,y,n,m......) = 變數值

a = 100
b = 3.14
c = "hello world"
d = True
e = False

但是有一些字不能拿來當變數名稱

False、None、True、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield.

這些字稱為 保留字

輸出變數 & 變數資料型態

a = 100
b = 3.14
c = "hello world"
d = True
e = False

print(a)
print(type(a))

print(b)
print(type(b))

print(c)
print(type(c))

print(d)
print(type(d))

print(e)
print(type(e))

執行結果

先宣告變數

印出變數

輸出變數型態

type()

輸出變數的資料型態

變數型態強制轉換

x = 1

int_x = int(x)
float_x = float(x)
str_x = str(x)
bool_x=bool(x)

print(int_x,type(int_x))

print(float_x,type(float_x))

print(str_x,type(str_x))

print(bool_x,type(bool_x))

先宣告變數

把變數型態改變

整數 : int()

浮點數 : float()

字串 : str()

布林值 : bool()

最後輸出

變數

變數的資料型態

執行結果

T = True
F = False
print(T,type(T))
print(F,type(F))
print("")

int_T = int(T)
int_F = int(F)
print(int_T,type(int_T))
print(int_F,type(int_F))
print("")

float_T = float(T)
float_F = float(F)
print(float_T,type(float_T))
print(float_F,type(float_F))
print("")

str_T = str(T)
str_F = str(F)
print(str_T,type(str_T))
print(str_F,type(str_F))

先宣告變數

印出變數

變數型態

把變數型態改變

整數 : int()

浮點數 : float()

字串 : str()

最後輸出

變數

變數的資料型態

執行結果

True = 1

False = 0

註解

在寫程式的時候,有時你會看到

這是單行註解喔

註解的功用是:

  • 讓他人比較容易讀懂你的程式
  • 處理程式錯誤時,比較方便

註解之-快捷鍵

把你想註解的程式碼

「框」起來後,

按下 Ctrl + /

就可以一次註解多行程式碼啦~

目前使用的 online gdb 可以這個

但不是所有的環境都可以(老舊的不一定行)

輸入  input()

x=input()
print(x)

1.把 x 設置為input()

2.print出x

執行結果

第一行程式碼中的輸入

print 出的 x

input()輸入一

試試看

幫我輸入 x、y、z後,

輸出 x 

輸出 y 

輸出 z 

範例輸入:

 

範例輸出:

5min

試試看-Ans

x=input()
y=input()
z=input()
print(x)
print(y)
print(z)

把 x y z 都設為 input() 後,

依序輸出 x y z

input()輸入二

x=input()
print(x,type(x))

1.把 x 設置為input()

2.print出 x 和 x 的資料型態

執行結果

為什麼我輸入整數,

但型態卻不是 int整數 而是 string字串 呢?

改變輸入的資料型態

x=int(input())
print(x)
print(type(x))

1.把 x 設置int(input())

(用int包著input(),把型態從string轉換成int)

2.print出 x 

3.print出 x 的資料型態

執行結果

這裡可以看到,

他的資料型態已經變成int了。

試試看

幫我輸入 x(1)、y(1.5)後,

輸出 x 和 x 的資料型態(限定int)

輸出 y 和 y 的資料型態(限定float)

範例輸入:

 

範例輸出:

5min

試試看-Ans

x=int(input())
y=float(input())
print(x,type(x))
print(y,type(y))

把 x、y 的 input() 型態設置為 int 和 float 後

輸出 x , x 的型態type(x)

輸出 y , y 的型態type(y)

f-string

先看看程式碼~~

x=10
y=20
print(f"x={x},y={y}")

可以看到,這裡把 f 放到了" "的前面

執行結果

先把 x 設為 10

y 設為20

因為 f

字串間可以使用 {} 來把 x、y...變數放入

比較一下

x=10
y=20
print(f"x={x},y={y}")

V.S

x=10
y=20
print("x={x},y={y}")

執行結果

執行結果

map  input()

map(int,input().split())

a,b,c,d,e = map(int,input().split())
print(a)
print(b)
print(c)
print(d)
print(e)

input() 的資料型態

input() 以 .split(~) 括號內做分割

沒放默認為空白

執行結果

輸入

輸出

a

b

c

d

e

試試看

幫我輸入 a b c 後

輸出:

a = ?

b = ?

c = ?

範例輸入:

 

範例輸出:

5min

試試看-Ans

a,b,c=map(int,input().split())
print(f"a = {a}")
print(f"b = {b}")
print(f"c = {c}")

用 map input() 在一行內輸入完變數後

利用 f-string 語法輸出

運算

四則運算&取整數、取餘數、指數

符號 means 運算
+ 相加 1+1=2、1+2=3、2+3=5
- 相減 2-1=1、3-2=1、5-2=3
* 相乘 2*2=4、3*5=15、4*6=24
/ 相除 6/3=2、5/3=1.66666、10/7=1.42857
** 指數運算 2**2=4、2**3=8、3**2=9
// 相除取整數 6//3=2、5//3=1、20//7=2
% 相除取餘數 6%3=0、5%3=2、20%7=6

先看程式碼~~

x=5
y=3
print("x+y=",end="")
print(x+y)
print("x-y=",end="")
print(x-y)
print("x*y=",end="")
print(x*y)
print("x/y=",end="")
print(x/y)
print("x**y=",end="")
print(x**y)
print("x//y=",end="")
print(x//y)
print("x%y=",end="")
print(x%y)

先指定 x y

印出 x , y 的運算

但是這樣程式好長喔,

感覺打了一堆重複的東西

執行結果

f-string 與 運算

x=5
y=3
print(f"x+y={x+y}")
print(f"x-y={x-y}")
print(f"x*y={x*y}")
print(f"x/y={x/y}")
print(f"x**y={x**y}")
print(f"x//y={x//y}")
print(f"x%y={x%y}")

利用 f-string

讓他可以在""中處理運算

執行結果

x += ~~~

原始式子 簡寫 運算
x = x + 5 x += 5 10 + 5 = 15
x = x * 5 x *= 5 10 * 5 = 50
x = x - 5 x -= 5 10 - 5 = 5

設 x = 10  

意思就是

x = 自身 +-*/ 某數

試試看

幫我輸入 x、y、z後,

輸出x-y+z

輸出x+y*z

利用f-string

範例輸入:

 

範例輸出:

5min

試試看-Ans

x,y,z = map(int,input().split())
print(f"{x}-{y}+{z}={x-y+z}")
print(f"{x}+{y}*{z}={x+y*z}")

把 x y z 都設為 input() 後,

利用f-string處理

x、y、z

x-y+z、x+y*z

在除法時,你可能會遇到:

幫我算到小數第3位、第5位...

x=5
y=3
print(f"{x}")
print(f"x={x}, y={y}")
print(f"{x} / {y} = {x/y}")
print(f"{x} / {y} = {x/y:.2f}")
print(f"{x} / {y} = {x/y:6.2f}")

執行結果

print(f"{x} / {y} = {x/y}")
print(f"{x} / {y} = {x/y:.2f}")
print(f"{x} / {y} = {x/y:6.2f}")

{x/y:.2f}    小數點後2位

{x/y:6.2f}    6->總共六位數,.2f小數點後2位

試試看

輸出

20除7,到小數第7位

20除7,到小數第3位,總共7位數

範例輸入:

範例輸出:

5min

試試看-Ans

print(f"20 / 7 = {20/7:.7f}")
print(f"20 / 7 = {20/7:7.3f}")

用:.7f 設置為小數第7位

:7.3f 設置7位數,小數第3位

有時候,

你可能會想要把變數的值互換

x=5
y=3
x=y
y=x
print(f"x = {x}")
print(f"y = {y}")

執行結果

這種作法無法互換x,y的值

因為當x=y之後

x就已經是y的值了

x=5
y=3
temp=x
x=y
y=temp
print(f"x = {x}")
print(f"y = {y}")

執行結果

所以需要先創建一個新變數(temp)

來存x的值

x=5
y=3
x,y=y,x
print(x,y)

1st 先設定好 x 、 y

2nd x , y = y 的值(3) , x 的值(5)

印出 x、y

如此

x=y的值(3)

y=x的值(5)

執行結果

x,y=y,x

對應的位置對到對應的值

比較方便的做法

試試看

輸入整數 x、y、z

讓x=y,y=z,z=x後

輸出 x、y、z

範例輸入:

 

範例輸出:

5min

試試看-Ans

x,y,z = map(int,input().split())
x,y,z=y,z,x
print(x,y,z)

先把 x、y、z設為整數輸入

接著,讓x,y,z=y的值,z的值,x的值

最後,輸出 x y z

x,y,z=y,z,x

x 對應到 y 的值

y 對應到 z的值

z 對應到 x的值

邏輯運算

if

if

如果......

就做......

if(True):
  print("True")

如果()內是真的話,

就做print("True")

記得要縮排(按下鍵盤 Tab )

執行結果

if-else

if(True):
  print("True")
else:
  print("False")
if(False):
  print("True")
else:
  print("False")

如果(True)

    執行A

否則

    執行B

執行結果

執行結果

if-elif-else

if(True):
  print("A")
elif(True):
  print("B")
else:
  print("C")
if(False):
  print("A")
elif(True):
  print("B")
else:
  print("C")

如果(True)

    執行A

否則如果(False)

    執行B

否則

    執行C

執行結果

執行結果

括弧內真的只能放True/False嗎?

Comparator比較子

符號 意思 比較 回傳 說明
> 大於 x  >  y True 10大於5  是真的
< 小於 x  <  y False 10小於5  是假的
>= 大於或等於 x  >=  y True 10大於或等於5  是真的
<= 小於或等於 x  <=  y False 10小於或等於5  是真的
== 等於 x == y False 10等於5  是假的
!= 不等於 x  !=  y True 10不等於5  是真的

設:

x=10  ,  y=5

程式碼~~

x=10
y=5
if(x>y):
  print("x>y")
if(x<y):
  print("x<y")
if(x>=y):
  print("x>=y")
if(x<=y):
  print("x<=y")
if(x==y):
  print("x==y")
if(x!=y):
  print("x!=y")

x > y

x >= y

x != y

都為真,

所以會輸出

x > y、x >= y、x != y

執行結果

試試看

當我輸入 x、y後

幫我判斷兩者是

x>y、x<y 還是 x=y 後輸出

範例輸入:

 

範例輸出:

5min

試試看-Ans

x,y = map(int,input().split())
if(x==y):
  print(f"{x} = {y}")
elif(x>y):
  print(f"{x} > {y}")
else:
  print(f"{x} < {y}")

如果 x 等於 y (x==y)

輸出 x=y

否則如果 x 大於 y (x>y)

輸出 x>y

否則

輸出 x<y

x 不等於 y

也不大於 y

and  or  not

設:

T = True、F = False

意思 判斷 回傳 說明
and 且  (兩者都需符合) T  and  F False T F 中只有 T 是真
or 或  (僅需一者符合) T  or  F True T F 中 T 是真
not not T False 不是真的 --> 假的

程式碼~~

T=True
F=False
if(T and F):
  print("T and F = True")
else:
  print("T and F = False")
if(T or F):
  print("T or F = True")
else:
  print("T or F = False")
if(not T):
  print("not T = True")
else:
  print("not T = False")
if(not F):
  print("not F = True")
else:
  print("not F = False")

設: T = 真、F = 假

T 且 F = 假

T 或 F = 真

不 T = 假

不 F = 真

執行結果

試試看

當我輸入 x 後

幫我判斷今天是不是周末(6、7)

並輸出

範例輸入:

x 限定 1~7

範例輸出:

5min

試試看-Ans

x=int(input())
if(x==6 or x==7):
  print("是周末")
else:
  print("不是周末")

如果 x 等於 6 或者等於 7

輸出 是周末

否則

輸出 不是周末

list-set-tuple

宣告list

Firstlist = ["apple", "big", 1, 2, 3, [1,2,3]]

list中的值

可以是字串

可以是數字

也可以是另一個list......

輸出list

numberlist = [1,2,3,4,5,6,7,8]
print(numberlist)
print(type(numberlist))
print(numberlist[0])
print(numberlist[4])

name_list[數字]

numberlist 中的 第數字

執行結果

格數:        0     1     2    3     4    5    6     7

輸入list

inputlist = list(map(int,input().split()))
print(inputlist)

運用map輸入法分割輸入

再轉型成list

執行結果

輸入:

輸出:

試試看

給你這段程式:

輸入:

輸出:

numberlist = [1,2,3,4,5,6,7,8,9,10]

幫我輸出

1 3 5 7 9

2 4 6 8 10

5min

更便捷的輸出方式

numberlist = [1,2,3,4,5,6,7,8,9,10]
print(numberlist)
print(numberlist[0:5])
print(numberlist[0:5:2])
print(numberlist[-1])
print(numberlist[0:-2])

從 a 格到 b 格前: [a:b]

從 a 格到 b 格前, 間格c : [a:b:c]

*從後面數過來第 a 格: [-a]

執行結果

試試看

給你這段程式:

輸入:

輸出:

numberlist = [1,2,3,4,5,6,7,8,9,10]

幫我輸出

[1, 3, 5, 7, 9]

[2, 4, 6, 8, 10]

使用[a : b : c]

5min

試試看-Ans

numberlist = [1,2,3,4,5,6,7,8,9,10]
print(numberlist[::2])
print(numberlist[1::2])

[ : :2]

因為沒限定初始格到結束格

所以默認從第零格到最後一格

[1: :2]

沒限定結束格

所以從第一格到最後一格

輸出 list 中所有的值

numberlist=[1,2,3,4,5,6,7,8,9]
print(numberlist)

v.s

numberlist=[1,2,3,4,5,6,7,8,9]
print(*numberlist)

增加資料

numberlist1 = [1,2,3,4,5]
print(numberlist1)
numberlist1.append(6)
print(numberlist1)
numberlist2 = [1,2,3,4,5]
print(numberlist2)
numberlist2.extend([6,7,8])
print(numberlist2)
numberlist3 = [1,2,3,4,5]
print(numberlist3)
numberlist3.insert(3,9)
print(numberlist3)

.append( a )

在尾部增加值 a 

.extend([ a,b,c...... ])

在尾部增加值 a b c...

.insert( a,b )

a 格增加 b

其他往後推

移除資料

numberlist1 = [1,1,2,2,3,3,4,4,5,5]
print(numberlist1)
del numberlist1[3]
print(numberlist1)
del numberlist1[1:8:2]
print(numberlist1)
numberlist2 = [1,2,3,4,5]
print(numberlist2)
numberlist2.pop()
print(numberlist2)
numberlist2.pop(2)
print(numberlist2)

del name_list[數字]

刪除對應的格子 

.pop( a )

刪除 a 格

如果沒放,就是刪除最後一格

移除資料

numberlist3 = [2,1,2,3,2,3]
print(numberlist3)
numberlist3.remove(2)
print(numberlist3)

.remove( a )

刪除最先出現的 a 值

排序資料

numberlist1 = [3,1,4,1,5,9]
print(numberlist1)
numberlist1.reverse()
print(numberlist1)
numberlist2 = [3,1,4,1,5,9]
print(numberlist2)
numberlist2.sort()
print(numberlist2)

.reverse()

把 list 反轉 

.sort()

由小到大排序

試試看

給你這段程式:

輸入:

輸出:

numberlist = [3,1,4,1,5,9,2,6,5,4,5]

幫我輸出

[6, 5, 5, 5, 4, 4, 3, 2]

5min

試試看-Ans

numberlist = [3,1,4,1,5,9,2,6,5,4,5]
numberlist.remove(9)
numberlist.remove(1)
numberlist.remove(1)
numberlist.sort()
numberlist.reverse()
print(numberlist)

2~4行把數字刪除後

再把它由小到大排序

之後反轉

宣告tuple

Firsttuple = (1,2,3,4,5)

tuple 跟 list 差不多

不過 tuple 不能被修改

不能新增、刪除值到 tuple 中

記得,宣告tuple是用 () 喔~~

輸出tuple

Firsttuple = (1,2,3,4,5)
print(Firsttuple)
print(type(Firsttuple))
print(Firsttuple[::2])

其實

tuple 的輸出跟 list 都差不多

name_tuple[數字]

執行結果

格數:      0     1     2    3     4  

宣告set

Firstset = {2,2,1,1,5,7,5,8,4,5,7}

set 中不含重複的資料

記得,宣告set是用 {} 喔~~

輸出set

Firstset = {2,2,1,1,5,7,5,8,4,5,7}
print(Firstset)
print(type(Firstset))

set 跟 list 差蠻多的

set 沒有 "格子" 的概念

它就是一個集合

執行結果

增加資料

numberset1 = {1,2,3}
numberset1.add(0)
print(numberset1)
numberset2 = {1,2,3}
numberset2.update({0,3,4,5,6,9,8,7})
print(numberset2)

.add( a )

增加 a 到 set 中

.update({ x })

新增 x 到 set 中

x 可以是多筆資料

移除資料

numberset1 = {1,2,3,4,5}
print(numberset1)
numberset1.remove(3)
print(numberset1)

.remove( a )

刪除 set 中的 a

聯集 交集 差集 對稱差集

setA

setB

聯集(or)

交集(and)

差集

對稱差集

聯集 交集 差集 對稱差集

聯集: union() 、 setA | setB

setA = {1, 6, 8, 10, 20}
setB = {1, 3, 8, 10}

print("聯集")
print(setA.union(setB))
print(setA | setB)
print("")

print("交集")
print(setA.intersection(setB))
print(setA & setB)
print("")

print("差集")
print(setA.difference(setB))
print(setA - setB)
print("")

print("對稱差集")
print(setA.symmetric_difference(setB))
print(setA ^ setB)

交集: intersection() 、 setA & setB

差集: difference() 、 setA - setB

對稱差集: symmetric_difference()                              setA - setB

聯集 交集 差集 對稱差集

setA = {1, 6, 8, 10, 20}
setB = {1, 3, 8, 10}

print("聯集")
print(setA.union(setB))
print(setA | setB)
print("")

print("交集")
print(setA.intersection(setB))
print(setA & setB)
print("")

print("差集")
print(setA.difference(setB))
print(setA - setB)
print("")

print("對稱差集")
print(setA.symmetric_difference(setB))
print(setA ^ setB)

執行結果

len()、sum()

max()、min()

in、not in

len()

回傳長度

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)
stringA="Hello world"

print(f"len(numberlist) = {len(numberlist)}")
print(f"len(numberset) = {len(numberset)}")
print(f"len(numbertup) = {len(numbertup)}")
print(f"len(stringA) = {len(stringA)}")

回傳加總

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)


print(f"sum(numberlist) = {sum(numberlist)}")
print(f"sum(numberset) = {sum(numberset)}")
print(f"sum(numbertup) = {sum(numbertup)}")

sum()

回傳最大值

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)


print(f"max(numberlist) = {max(numberlist)}")
print(f"max(numberset) = {max(numberset)}")
print(f"max(numbertup) = {max(numbertup)}")

max()

回傳最小值

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)


print(f"min(numberlist) = {min(numberlist)}")
print(f"min(numberset) = {min(numberset)}")
print(f"min(numbertup) = {min(numbertup)}")

min()

判斷是否在其中

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)

L = -1 in numberlist
S = 0 in numberset
T = 1 in numbertup
print(f"-1 in numberlist is {L}")
print(f"0 in numberset is {S}")
print(f"1 in numbertup is {T}")

in

回傳: 布林值 (True False)

判斷是否不在其中

numberlist=[1,2,3,4,5]
numberset={1,2,3,4,5,6,7}
numbertup=(1,2,3,4,5,6,7,8,9)

L = -1 not in numberlist
S = 0 not in numberset
T = 1 not in numbertup
print(f"-1 not in numberlist is {L}")
print(f"0 not in numberset is {S}")
print(f"1 not in numbertup is {T}")

not in

回傳: 布林值 (True False)

輸入 list/set/tuple

還記得 map(int,input().split()) 嗎?

 

這個程式可以幫你分割你在一行內的輸入

 

還記得怎麼轉換變數型態嗎?

 

可以使用 int、str、......把變數型態改變

輸入 list/set/tuple

list( map( int , input().split() ) )

First:

輸入,之後分割輸入

1

1

1

9

5

7

3

2

4

6

8

Second:

把分割後的

"str"資料型態改成int

Last:

把這些數字變成list

輸入 list/set/tuple

numberlist=list(map(int,input().split()))
numberset=set(map(int,input().split()))
numbertup=tuple(map(int,input().split()))

print(f"numberlist is {numberlist}")
print(f"numberset is {numberset}")
print(f"numbertup is {numbertup}")

輸入

輸出

試試看

輸入lista

判斷lista的最大值//2有沒有在lista中並輸出

判斷lista的最小值*2有沒有在lista中並輸出

範例輸入:

輸出:

5min

試試看-Ans

lista=list(map(int,input().split()))
Max_X=max(lista)
Min_X=min(lista)
print(Max_X//2 in lista)
print(Min_X*2 in lista)

用Max_X變數存取lista最大值

Min_X存取lista最小值

最後利用" in "輸出

dict

宣告dict

Firstdict = {"apple": "蘋果", "big": "大", "cat": "貓"}

字典名

Seconddict = {"one": 1, "two": 2, "three": 3}

"apple": "蘋果"

鍵Key

值value

字典的特性是,

你可以由"key"找到他相對應的"value"

而Key是唯一不變

value可以是任何資料型態

用大括號包起來

輸出整個字典

Firstdict = {"apple": "蘋果", "big": "大", "cat": "貓"}
print(Firstdict)
print(type(Firstdict))

先宣告好變數後

用 print 輸出變數及型態

執行結果

可以看到

資料型態是"dict"

Firstdict = {"apple": "蘋果", "big": "大", "cat": "貓"}
Seconddict = {"one": 1, "two": 2, "three": 3}

print(Firstdict["apple"])
print(Seconddict["three"])

中括號

字典中的Key

執行結果

用鍵找值 

新增資料

Englishdict = {"apple": "蘋果", "big": "大", "cat": "貓"}
Englishdict["dog"] = "狗"
Englishdict["empty"] = "空"
print(Englishdict)

新增字典資料時

我們需要先有一個字典

而新增時語法為:

dictName[key] = value

執行結果

一次新增大量資料

Englishdict = {"apple": "蘋果", "big": "大", "cat": "貓"}
addedEnglish = {
	"Hi": "嗨",
	"Hello": "哈囉",
	"Happy": "開心",
	"dig": "挖",
	"empty": "空"
}
Englishdict.update(addedEnglish)
print(Englishdict)

語法:

dict.update(dict)

執行結果

更改資料

Wrongdict={"Hi": "你好", "Hello": "我很好"}
print(Wrongdict)
Wrongdict["Hi"] = "哈囉"
Wrongdict["Hello"] = "你好"
print(Wrongdict)

更改資料與新增資料一樣都是:

dictName[key] = value

執行結果

試試看

給你這段程式:

輸入:

輸出:

numberdict = {"one": 1, "two": 2, "three": 3}
addnumber = {"six": "六", "seven": "七", "eight": "八", "nine": "九"}

幫我把value都改成文字

並新增 four 四five 五 到number字典中

再把 addnumber 更新到 number 字典中

最後輸出number字典

5min

試試看-Ans

numberdict = {"one": 1, "two": 2, "three": 3}
addnumber = {"six": "六", "seven": "七", "eight": "八", "nine": "九"}
numberdict["one"] = "一"
numberdict["two"] = "二"
numberdict["three"] = "三"
numberdict["four"] = "四"
numberdict["five"] = "五"
numberdict.update(addnumber)
print(numberdict)

由 dictName[key] = value 新增並更改字典內容

再使用 dict.update(dict)

把addnumber 新增到 numberdict 中

最後輸出

刪除資料

刪除資料有兩種寫法

1: del dict_name['key']

2: dict_name.pop('key')

numberdict = {"one": 1, "two": 2, "three": 3, "four": 4}
print(numberdict)
del numberdict["four"]
print(numberdict)
numberdict = {"one": 1, "two": 2, "three": 3, "four": 4}
print(numberdict)
numberdict.pop("four")
print(numberdict)

執行結果

其他用法:

numberdict = {"one": 1, "two": 2, "three": 3, "four": 4}

print(f"numberdict的長度是: {len(numberdict)}")
print(f"numberdict中的key是: {numberdict.keys()}")
print(f"numberdict中的values是: {numberdict.values()}")
print(f"numberdict中的item是: {numberdict.items()}")

長度: len(dict_name)

查看鍵: dict_name.keys()

查看值: dict_name.values()

查看所有元素: dict_name.items()

執行結果:

想要了解更多的話

Python 初學第九講 — 字典

https://reurl.cc/aVb3v7

for-while

break-continue

for迴圈

for i in 序列:

    ~~~

意思是:對於在 序列 中的 i

i : 變數

序列 : 一組數字、 list 、 set ......

for - range()

for i in range(10):
  print(i)
for i in range(1,10,2):
  print(i)

range(起始值 , 終止值 , 遞 增/減 值)

執行結果:

執行結果:

試試看

範例輸入:

範例輸出:

輸入整數 x , 整數 y 

幫我輸出:

整數x 加到 整數y (不包含 整數y ) = ?

5min

試試看-Ans

x = int(input())
y = int(input())
answer = 0
for i in range(x,y):
  answer += i
print(f"{x} 加到 {y} (不包含{y}) = {answer}")

用 x , y 存入輸入的整數後

for i in range(x,y)

讓他起始為 x 終止為 y

再另用一個變數計算答案(answer)

for - list set tuple

numberlist = [1,2,3,4,5]
for i in numberlist:
  print(i)
numberset = {1,2,3,4,5}
for i in numberset:
  print(i)
numbertuple = (1,2,3,4,5)
for i in numbertuple:
  print(i)

執行結果:

for - break

for i in range(10):
  if(i==5):
    break
  print(i)

break : 跳出整個迴圈 (這裡跳出for)

執行結果:

for - continue

for i in range(10):
  if(i==5):
    continue
  print(i)

continue : 跳出本次迴圈 

執行結果:

試試看

範例輸入:

範例輸出:

幫我計算 x 到 y 間的奇數和

( 包含 x,y )

5min

試試看-Ans

sum_odd = 0
x,y = map(int,input().split())
for i in range(x,y+1):
  if(i%2==0):
    continue
  sum_odd += i
print(sum_odd)

當 i 是 2 的倍數時 ( i 除 2 餘數為0)

跳過當次迴圈( 不執行 sum_odd += i ) 

用for創造list

lista=[]
for i in range(10):
    lista.append(i)
print(lista)
lista=[i for i in range(10)]

要append的東西

i 這個變數是在range(10)中

把在range(10)中的 i

append入lista中後輸出

while

while( True ):

    ~~~

意思是:

當 True 時

會一直做~~~

while - 計算

i=0
while(i<10):
  print(i)
  i+=1

while 會執行 10 次

直到 i 不小於10 ( False )

執行結果:

while - 無窮

i=0
while(i<10):
  print(i)

while 會一直執行

執行結果:

這並不是全部......

試試看

範例輸入:

範例輸出:

輸入正整數 N

使用 while 輸出 1 到 N 中所有 7 的倍數

5min

試試看-Ans

N=int(input())
i=1
while(i<=N):
  if(i%7!=0):
    i+=1
    continue
  print(i)
  i+=1

當 i 是 7 的倍數時 ( i 除 7 餘 0)

輸出 i   

Copy of Python

By naup96321

Copy of Python

  • 27