Learn Python in 30 min - 1
cmj
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

Learn python 1