1 of 62

Python基礎

唯客學院

2 of 62

對初學者的建議

3 of 62

使用模組套件

解決問題

鑽研技術

程式全部自己寫

Python的作法

領域專家

CS為主的思維

軟體工程師

電腦科學家

4 of 62

20%基礎功能,80%重要性

80%進階功能,20%重要性

5 of 62

6 of 62

DEMO

7 of 62

OOOOO*

OOOO***

OOO*****

OO*******

O*********

8 of 62

跟創業一樣,寫程式也是要練習

運用有限資源

創造無限可能

9 of 62

Python的使用環境

10 of 62

https://ipython.org/ipython-doc/3/development/how_ipython_works.html

1

2

3

4

使用雲端的 notebook

建議初學者從這個開始!

11 of 62

使用者

Google Colab

Microsoft

Google

4

雲端 notebook

(建議使用Colab)

12 of 62

DEMO

13 of 62

Python的哲學

14 of 62

(圖形取自網路)

15 of 62

(圖形取自網路)

16 of 62

模組A

(解決問題W)

模組B

(解決問題X)

模組C

(解決問題Y)

模組D

(解決問題Z)

基本資料型態

基本容器型別

基本語法

20%

17 of 62

模組

套件

.py檔

管理.py檔的目錄結構

18 of 62

Python 是膠水語言

  • Python 有豐富的模組及套件可以使用。
  • 使用者通常不需要實作程式所有的功能,而是需要協調及整合套件及模組的運作!!!
  • 使用 Python 可以在最短的時間做出產品雛形

18

19 of 62

DEMO

20 of 62

20

Python 的檔案類型

21 of 62

主要兩種檔案類型

.py

.ipynb

22 of 62

常看到的 .py 檔的程式架構

22

載入模組 (import)

程式

載入模組 (import)

定義函式 (def)

if __name__=="__main__":

程式

判斷模組是直接被執行,還是被其他模組載入

23 of 62

.ipynb 檔的程式架構

[ ]:

程式

輸出

說明文字、數學式等等

Markdown Cell

(Text Cell)

Code Cell

24 of 62

Jupyter notebook/lab 常用熱鍵及指令

  • 執行cell:
    • Shfit + Enter ⇒ 執行該 cell,並跳下一個 cell
    • Ctrl + Enter ⇒ 執行該 cell,但停在該 cell
    • Alt + Enter ⇒ 執行該 cell,並插入一個新的 cell
  • 自動填滿:Tab 鍵
  • 提示引數:Shift + Tab
  • 求助:
    • ObjectName?
    • ObjectName??

24

25 of 62

DEMO

26 of 62

26

Python 的變數

27 of 62

什麼是變數

存放資料的

記憶體位址的別名

28 of 62

記憶體位址 (Memory Address)

Memory Address

Value

0X7E0BECF6C0F0

0101 0101

0X7E0BECF6C0F1

0001 0101

0X7E0BECF6C0F2

0101 0001

0X7E0BECF6C0F3

1101 1101

0X7E0BECF6C0F4

1111 0001

0X7E0BECF6C0F5

0111 0111

0X7E0BECF6C0F6

0001 1101

0X7E0BECF6C0F7

0001 0100

沒有取別名記不起來

29 of 62

變數的命名

  • 變數名稱最好以英文字母底線做開頭 (數字不能做開頭)
    • _variable, variable, variable_
  • 除開頭字元外,其他字元使用數字、底線、或英文字母
    • _var123, var_123
  • 變數會區分大小寫
  • 避開關鍵字 (keywords)
  • 避開內建的物件 (built-in objects)

30 of 62

寫程式!!!不是算數學!!!

X = X + 1

變數記憶體位置

(L-value)

變數內含的值

(R-value)

指派

(assignment operator)

可以使用 Visualize Python 來觀察變數跟記憶體的使用!

31 of 62

程式 = 資料結構 + 演算法

資料型態:

  • int
  • float
  • bool
  • str
  • None

基本語法:

  • 條件式(if)
  • 迴圈
  • 函式
  • 例外處理

容器型別:

  • list []
  • tuple ()
  • dict {}
  • set {}

32 of 62

用 type() 檢視變數的資料型態

type(變數名稱)

33 of 62

DEMO

34 of 62

34

Python 的資料型態

35 of 62

什麼是資料型態

資料型態告訴我們

變數裡面放了什麼

36 of 62

四個基本資料型態 (變數裡面放了單一個東西)

36

int

float

str

bool

0

10

3.14

5.2

dog

cat

True

False

37 of 62

四個基本容器型別 (變數裡面放了可以放東西的容器)

37

[ ]

( )

{ }

{ }

list

tuple

dict

set

38 of 62

List

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

39 of 62

Indexing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[0]

x[1]

x[2]

x[3]

x[4]

40 of 62

Indexing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[-5]

x[-4]

x[-3]

x[-2]

x[-1]

41 of 62

Slicing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[1:3]

x[1]

x[3]

42 of 62

Slicing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[1: ]

x[1]

43 of 62

Slicing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[ :3]

x[3]

44 of 62

Slicing

x = [ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

x[-3: ]

x[-3]

45 of 62

Tuple

x = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)

46 of 62

Indexing

x = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)

x[0]

x[1]

x[2]

x[3]

x[4]

47 of 62

Indexing

x = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)

x[-5]

x[-4]

x[-3]

x[-2]

x[-1]

48 of 62

Slicing

x = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)

x[1:3]

49 of 62

Dict

y = {‘apple’:10,

‘orange’:20,

‘banana’:30}

keys (鍵)

values (值)

50 of 62

y = {‘apple’:10,

‘orange’:20,

‘banana’:30}

y[‘apple’]

y[‘orange’]

y[‘banana’]

51 of 62

Set

x = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’}

y = {‘c’, ‘d’, ‘e’, ‘f’, ‘g’}

x & y = ? x | y = ?

52 of 62

DEMO

53 of 62

53

Python 的語法

54 of 62

語法可以做什麼?

可以讓程式

單調的從上到下執行

55 of 62

Python的語法重點

  • Python 是用縮排來定義程式區塊
    • 每一行程式前面的空白字元的數量是有意義的!
    • 每個程式區塊前的空白字元數量必須一樣。
  • 使用 import載入模組
  • # 開頭的文字為註解
  • 引號(單引號或雙引號)標註起來的為字串

56 of 62

四種基本語法

條件式 (if statement):

選擇性執行程式區塊

迴圈 (loops):

重複執行程式區塊

函式 (functions):

函式被呼叫時執行函式內的程式區塊

56

例外處理(Exception Handling):

嘗試執行程式區塊發生錯誤時,執行例外處理程式區塊

57 of 62

條件式 (if statements)

參考語法一:

參考語法二:

參考語法三:

58 of 62

迴圈 (Loops)

for loop 參考語法:

範例:

while loop 參考語法:

範例:

59 of 62

函式 (Functions)

函式定義參考語法:

函式呼叫參考語法一:

函式呼叫參考語法二:

60 of 62

例外處理 (Exception Handling)

例外處理參考語法:

61 of 62

DEMO

62 of 62

Thank You!