learn python 1

56
Learn Python in 30 min - 1 cmj 1

Upload: chia-hao-tsai

Post on 03-Aug-2015

421 views

Category:

Technology


2 download

TRANSCRIPT

Learn Python in 30 min - 1cmj

1

Python - Programming Language

2

‧ 直譯式程式語言 - 不需要編譯 (省時間)

‧ 直白的程式語言 - 所想即所得 (省時間)

‧ 豐富的程式語言 - 資源豐富 (省時間)

3

4

First Program - Hello World

5

Hello World

6

Hello World標準輸出:print

執⾏行 (輸出) Hello World

7

Hello World只是個註解:#

註解 (給⼈人/機器看的)

8

Hello World

只是個⽤用不到的變數

9

簡單吧~

10

來點複雜的∼

11

條件/輸入

12

條件/輸入縮排 (Indent) /範圍 (Scope)

縮排 (indent):⽤用來判斷範圍 (scope)

13

縮排

‧ 之前提過,Python 很好閱讀

‧ 跟其他程式語言不一樣,範圍 (scope) 使用縮排

‧ 可以少打兩個大括號 (Braces) => 省時間/好閱讀

‧ 比較一下∼

14

混亂 C 程式碼 (2013)http://www0.us.ioccc.org/2013/misaka/misaka.c

15

條件/輸入輸入到按 Enter:raw_input

標準輸⼊入

16

條件/輸入輸出

豐富的字串處理

17

字串處理

‧ Python 另一個優點:較方便的字串處理

‧ 兩種處理字串方式

‧ C-Style

‧ 比較潮的 String Format:接近呼叫函數

18

String Format數字就是 index,字串就是變數名稱

19

條件/輸入條件判斷:if

條件:只有是程式進⼊入點才會執⾏行

20

條件 (Condition)

‧ Key Word:if,elif,else

‧ 當條件為非假時執行

‧ None、False、0、空 (字串、列表) 都為假

‧ scope:用冒號 (Colon) 做分隔

‧ scope 內的為條件執行的範圍

21

跟得上嗎!?喝口水吧~

22

回到基本的程式設計

23

變數

只是個⽤用不到的變數

24

‧ 變數在程式語言很重要

‧ 紀錄目前運作中的狀態

‧ 變數 (理論上) 全域可得

25

‧ 有很多種變數

‧ 布林值 (True / False)

‧ 數字 (Integer / Float)

‧ 字串

‧ List / Tuple / Dict / Set / Iterator

‧ 函數 (Function) / 物件 (Object)

‧ 例外 (Exception)

26

串列

‧ 串列:一串東西

‧ List / Tuple (不可修改):有序串列。

‧ Dict:字典 (Key-Value 對映關係)。

‧ Set:Hash 形式的無序串列。

‧ Iterator:動態決定的串列。

27

剩下的,用到的時候就知道了^.<

28

來點數學吧∼

29

等差數列和其實有更簡單的∼

30

等差數列和keyword:def (define)

定義函數

回傳結果

31

‧ 函數定義時

‧ keyword:def

‧ 一樣有 scope 概念

‧ 變數沒有預設型態 => 自己檢查吧

‧ 要不要回傳 => 自己決定吧

32

等差數列和

這叫做例外

33

‧ 例外處理

‧ 強制中斷

‧ 回到呼叫的地方,直到

‧ 有人接收 (try-except) 為止,或者

‧ 結束程式

34

等差數列和迴圈

操作迴圈

35

‧ 迴圈:for 東西 in 一大堆東西

‧ 一大堆東西可以是很多種:只要能夠列舉

‧ 最常見的:從 0 ~ n

‧ 可以自己列:用 [0, 1, 2, 3, 4]

‧ 或者用內建函數幫你:range(n)

36

最後一個、類別 (Class)

37

簡單來說,來創造自己的小宇宙吧~

38

創造類別

39

創造類別class

定義

40

‧ 類別始於 class

‧ 一切定義在 scope 當中

‧ scope 裡定義 class 的所有能力

41

創造類別方法論!?

⽅方法

42

‧ 方法 (method)

‧ 用於操作 class 的方法

‧ 約定成俗,_ 代表私密的 (所以兩個就極私密的)

‧ __XXX__ 通常代表內部使用

‧ __init__,__del__ 建構子與解構子

‧ 建立物件、刪除物件的時候自動呼叫

43

創造類別建構 (constructor)

這叫做建⽴立

44

創造類別解構 (destructor)

這叫做刪除

45

創造類別屬性 (property)

預設參數,內部屬性

46

‧ 方法,也就是一個函數

‧ 可以有預設值 (但是有預設值得要放在最後面)

‧ class 中的 method 第一個變數一定是自己

‧ 約定成俗:使用 self

‧ 所有塞到 self 的屬性,同 class 可以使用

‧ 外面的人也可以看到

47

還有更多 很潮 的功能,下次再說

48

整理一下

49

‧ 學習怎樣看 Python Code

‧ 了解基本的程式架構

‧ 輸出/輸入

‧ 邏輯判斷

‧ 迴圈

‧ 簡單了解變數、函數、類別

50

當然,會有作業!

51

1. 了解第一個有用的網路資源:https://doc.python.org

2. 看過所有 Python 提供的 Built-In Function

1. https://docs.python.org/2/library/functions.html

2. 抽考 Built-In Function 的內容 (或者下次提問)

3. 這很重要,除非你跟我一樣愛重新造輪子

3. 程式作業!

52

程式作業

‧ 寫出一個 function: F(n) 產生 n*n 乘法表

‧ 例如

‧ F(1) 1

‧ 1 1

‧ F(2) 1 2

‧ 1 1 2

‧ 2 2 4

‧ 排版要好看!

53

程式作業 - 進階

‧ 謎之聲:聽說很愛考白版題

‧ 實作下面的數學問題 By 自己定義一個函數 f

‧ f(0) 可以得到 1

‧ f(1) 可以得到 2

‧ 輸入 f(n) 是得到 3*f(n-1) - 2*f(n-2)

‧ 方法不限,只要是函數就可以了∼

54

那,今天就這樣了∼

Q&A

55

Thanks for your attentions

56