Download presentation
Presentation is loading. Please wait.
1
Python 簡介 林子傑
2
Outline Python 特色 程式語法 應用
3
Why Python?
4
TIOBE Index for April 2016
5
Python 特色 設計哲學是: 直譯式、動態語言 開發快速 「優雅」「明確」「簡單」 程式可閱讀性高 好學! 好寫! 效能??
好學! 好寫! 效能?? 開發快速 適合做 prototype 一個程式碼被閱讀的次數很高,且某種程度上讀程式比寫程式困難 python 年發布. ( c大約40年 .c++ 30 直譯式語言會將程式碼一句一句直接執行,不需先行編譯,好處是在開發修改時無須一一重新編譯 動態語言程式在執行時可以改變其結構,例如新的函式、物件、變數的型別也可以變換
6
Python 高階的資料型別能在一陳述句 (statement) 中表達很複雜的操作
陳述句的段落以縮排為區格而非刮號 不需要宣告變數和引數
7
誰在用 Python?
8
安裝 Python Ver or Ver
9
開啟 Python shell
10
Hello world! >>> print ‘hello world!’
11
開發環境 Pyzo – 輕量、小巧 PyCharm – 中大型專案需求 Eclipse with PyDev
PyCharm – 中大型專案需求 Eclipse with PyDev
12
Pyzo
17
Pyzo 好用指令 查看說明文件: ?X or X? ??X or X?? 路徑相關: cd ls 變數相關:
who - list variables in current workspace whos - list variables plus their class and representation 執行相關: timeit X - times execution of command X run X - run file X
18
Python 語法 使用 ”縮排” 代替大括號,且規範為 4 個空格 不使用分號 “ ; ”
19
Python 語法 資料型態: Integer Float Boolean String – ‘hello’ List – [ … ]
Dictionary – { … }
20
String str1 = ‘hello’ str2 = “!!!” str3 = “““ hello! goodbye”””
'hello!\ngoodbye' str4 = str1 + str2 >>> print str4 hello!!!
21
String str = ‘hello’ >>> str[0] ‘h’ >>> str[2] ‘l’
a = 100 str = “ans: {num}” .format(num = a) >>> print str ans: 100
22
List lst = [ 100 , 'hello‘ , [1,2] ] >>> lst[0] 100
[1, 2] >>> lst.append('hi') >>> lst [ 100, 'hello' , [1, 2] , 'hi' ] >>> lst[-1] 'hi'
23
List lst = [ 100 , 'hello' , [1,2] , 'hi' ] 'hello‘
>>> lst.pop(1) 'hello‘ >>> lst [ 100 , [1, 2] , 'hi' ] >>> lst.insert(1,'goodbye') >>> lst [ 100, 'goodbye' , [1, 2] , 'hi' ]
24
Dictionary dic = { 'name' : 'john' , 'age' : 30 }
>>> dic['f'] = 2 >>> dic { 'age' : 30 , 'name' : 'john' , 'f' : 2 } >>> dic.keys() [ 'age' , 'name' , 'f' ] >>> dic.pop('f') 2 >>> dic { 'age' : 30 , 'name' : 'john' }
25
流程控制 if / while if a == 10: print 'is 10' while a > 0: print a
break continue
26
if a = 2 if 0 <= a <= 3: print '0~3' elif 4 <= a <= 6:
else: print 'not in 0~6' >>> a = 3 >>> 0 <= a <= 3 True
27
流程控制 for >>> range(0,3) [0, 1, 2] >>> range(0,5,2)
for a in range(0,5): print a >>> range(0,3) [0, 1, 2] >>> range(0,5,2) [0, 2, 4] >>> range(6,1,-1) [6, 5, 4, 3, 2]
28
基本輸出/輸入 print >>> a = 10 print ‘hello’
num = 10 print num lst = [1,'hi'] print lst >>> a = 10 >>> print 'he is' , a , 'years old' he is 10 years old
29
基本輸出/輸入 input imput = input( 'message' ) 2.x 3.x 依據輸入不同給予不同類別
ex. 輸入 1 -> int , 輸入 ‘hello’ -> string raw_input() 3.x 統一給予為字串
30
自定義函式 def myPower( num, power ): return num ** power
31
import import math, os import myFunction 現成的 library 自定義函式、類別 需在相同目錄下
myFunction.myPower myFunction.str
32
第三方函式庫 web框架 科學計算 GUI 影像處理 Machine Learning Django Flask Matplotlib
SciPy Machine Learning scikit-learn GUI PyGtk PyQt 影像處理 PIL Pillow
33
安裝 >>> pip install pillow
34
批次作業 windows也有內建的一些方式可以修改
36
web資訊抓取 parser – sgmllib SGMLParser
37
科學計算 - SciPy
38
Scrapy 1.1 – PTT資料統計 擷取資料 推文分析 自動翻頁,並打開每篇文章 抓下標題、作者、本文 抓下每一則推文的作者和分數
matplotlib Numpy scikit-learn Seaborn
40
總結 Python 是一個簡單易學且好用的程式語言 第三方函式庫使用方便 開發快速,應用有潛力 語法簡單、閱讀性高,使用上也相當彈性
函式庫使用相較其他語言容易得多,只需import,拿來即用 IOT、SDN
41
參考資料 http://wiki.python.org.tw/Python
Python 台灣使用者群組 Python 3 Tutorial management-tools Python 套件管理程式簡介 Python 快速入門 Wikipedia Scrapy + Python 3: PTT 資料抓取與分析
Similar presentations