Learn Python in 30 min - 1cmj
1
Python - Programming Language
2
‧ 直譯式程式語言 - 不需要編譯 (省時間)
‧ 直白的程式語言 - 所想即所得 (省時間)
‧ 豐富的程式語言 - 資源豐富 (省時間)
3
First Program - Hello World
5
Hello World標準輸出:print
執⾏行 (輸出) Hello World
7
Hello World只是個註解:#
註解 (給⼈人/機器看的)
8
Hello World
只是個⽤用不到的變數
9
條件/輸入縮排 (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
‧ 變數在程式語言很重要
‧ 紀錄目前運作中的狀態
‧ 變數 (理論上) 全域可得
25
‧ 有很多種變數
‧ 布林值 (True / False)
‧ 數字 (Integer / Float)
‧ 字串
‧ List / Tuple / Dict / Set / Iterator
‧ 函數 (Function) / 物件 (Object)
‧ 例外 (Exception)
26
串列
‧ 串列:一串東西
‧ List / Tuple (不可修改):有序串列。
‧ Dict:字典 (Key-Value 對映關係)。
‧ Set:Hash 形式的無序串列。
‧ Iterator:動態決定的串列。
27
剩下的,用到的時候就知道了^.<
28
等差數列和keyword:def (define)
定義函數
回傳結果
31
‧ 函數定義時
‧ keyword:def
‧ 一樣有 scope 概念
‧ 變數沒有預設型態 => 自己檢查吧
‧ 要不要回傳 => 自己決定吧
32
‧ 例外處理
‧ 強制中斷
‧ 回到呼叫的地方,直到
‧ 有人接收 (try-except) 為止,或者
‧ 結束程式
34
‧ 迴圈:for 東西 in 一大堆東西
‧ 一大堆東西可以是很多種:只要能夠列舉
‧ 最常見的:從 0 ~ n
‧ 可以自己列:用 [0, 1, 2, 3, 4]
‧ 或者用內建函數幫你:range(n)
36
最後一個、類別 (Class)
37
簡單來說,來創造自己的小宇宙吧~
38
‧ 類別始於 class
‧ 一切定義在 scope 當中
‧ scope 裡定義 class 的所有能力
41
‧ 方法 (method)
‧ 用於操作 class 的方法
‧ 約定成俗,_ 代表私密的 (所以兩個就極私密的)
‧ __XXX__ 通常代表內部使用
‧ __init__,__del__ 建構子與解構子
‧ 建立物件、刪除物件的時候自動呼叫
43
創造類別建構 (constructor)
這叫做建⽴立
44
創造類別解構 (destructor)
這叫做刪除
45
創造類別屬性 (property)
預設參數,內部屬性
46
‧ 方法,也就是一個函數
‧ 可以有預設值 (但是有預設值得要放在最後面)
‧ class 中的 method 第一個變數一定是自己
‧ 約定成俗:使用 self
‧ 所有塞到 self 的屬性,同 class 可以使用
‧ 外面的人也可以看到
47
還有更多 很潮 的功能,下次再說
48
‧ 學習怎樣看 Python Code
‧ 了解基本的程式架構
‧ 輸出/輸入
‧ 邏輯判斷
‧ 迴圈
‧ 簡單了解變數、函數、類別
50
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
Thanks for your attentions
56