<ul><ul><li>Python- 快快樂樂寫程式 </li></ul></ul>酷學園教學團隊  雨蒼
個人背景 <ul><li>雨蒼 </li></ul><ul><li>目前為 [email_address] 窗口 </li></ul><ul><li>完全沒摸過程式語言 </li></ul><ul><li>曾去巨 x 學過 C++ 但是跟他不熟...
Python 的核心思維 <ul><li>There is only one way to do it. 要做好一件事,一種方法就夠了。 </li></ul><ul><li>Everything is object. 萬物皆物件 </li></...
Python 的 優點 <ul><li>簡單易讀 </li></ul><ul><li>易於協同開發 ‏ </li></ul><ul><li>很快就可以上手 </li></ul><ul><li>記憶體回收機制 </li></ul><ul><li>...
Python 的缺點 <ul><li>速度仍然比 C 慢 </li></ul><ul><li>跨平台 - 使用 Python 模擬器 (PVM) ‏ </li></ul><ul><li>有些超級老的 cpu 不能跑 </li></ul><ul>...
誰在用 Python <ul><li>Google </li></ul><ul><li>Youtube </li></ul><ul><li>BitTorrent </li></ul><ul><li>NASA </li></ul><ul><li>...
 
執行第一個程式 <ul><li>副檔名: py </li></ul><ul><li>兩種作法:直譯器和執行 script </li></ul><ul><li>$ python  開啟互動介面 </li></ul><ul><li>python *...
如何寫出第一個程式 <ul><li>打開 IDLE </li></ul><ul><li>Print &quot;hello, world&quot; </li></ul>
<ul><ul><li>思考:為什麼要加上雙引號? </li></ul></ul>
為什麼要加上雙引號 (&quot;) ‏ <ul><li>$ python print6.py  6 6 </li></ul><ul><li>到底 6 要當成字看還是要當成數字? </li></ul><ul><li>7 Traceback (m...
<ul><ul><li>關於變數 </li></ul></ul>
數值 (numbers) ‏ <ul><li>整數 (int) ‏ </li></ul><ul><li>浮點 (float) ‏ </li></ul><ul><li>長整數 (long) ‏ </li></ul><ul><li>八進位與十六進位...
數值運算與相關工具 <ul><li>+ - * / ** //... </li></ul><ul><li>遵守四則運算規則 </li></ul><ul><li>數學函式: pow abs... </li></ul><ul><li>Modules...
字串 (string) ‏ <ul><li>字串 (str) ‏ </li></ul><ul><li>Raw </li></ul><ul><li>Unicode </li></ul><ul><li>byte(in Python 3.0) ‏ <...
字串運算與相關工具 <ul><li>+ *... </li></ul><ul><li>len()  </li></ul><ul><li>slice notation </li></ul><ul><li>Replace ,Upper.... </...
Slice 0 1 2 3 4 5 [: :] [  起使:終止:步進  ] E C I L S
List <ul><li>[ 'abc', 123 , [ 'a' , 'b' ] ] </li></ul><ul><li>可任意巢狀化,不限定型態 </li></ul>
List 運算與相關工具 <ul><li>+ * </li></ul><ul><li>len()  </li></ul><ul><li>subscript and slice notation </li></ul><ul><li>extend ...
Tuple <ul><li>( 'abc', 123 , [ 'a' , 'b' ] ) ‏ </li></ul><ul><li>內含物不可變更之 list </li></ul>
辭典 (Dictionary) ‏ <ul><li>{ 'name' : 'billy3321' ,'jobs' : ['student', 'maintainer'], 'develop' : {'name' : 'lazybuntu', '...
辭典運算與相關工具 <ul><li>keys values items </li></ul><ul><li>update() pop() del..... </li></ul>
檔案存取 <ul><li>myfile = open('myfile', 'w') myfile.write('hello study area
hello sa taipei') myfile.close() ‏ </li></ul><ul>...
<ul><ul><li>思考:如何儲存變數? </li></ul></ul>
使用 pickle 直接儲存物件 <ul><li>D={'a':1 , 'b':2 , 'c':3} import pickle file = open('datafile.txt', 'w') pickle.dump(D, file) fil...
<ul><ul><li>思考:為什麼整數,數字不能改?我明明就可以改! </li></ul></ul><ul><ul><li>為什麼 List 自己會改變? </li></ul></ul>
為什麼 Python 支援動態定型? <ul><li>整數,字串是不能改的?我明明就可以改他啊! </li></ul><ul><li>A = 3 B = A print A , B A = 'hello' print A , B </li></...
[ 'abc' , [(1, 2), ([3],4)],'def'] ' abc ' (1, 2) ([3],4) 'd ef ' 1 2 [3] 4 3
共用參照值與複製 <ul><li>L1 = [ 2 , 3 , 4 ] L2 = L1 L1[0] = 24 </li></ul><ul><li>L1 = [ 2 , 3 , 4 ] L2 = L1[:] L1[0] = 24 </li></ul>
小型整數或字串會重複使用 <ul><li>X = 32 Y = 32 X == Y X is Y </li></ul><ul><li>import sys sys.getrefcount(1) ‏ </li></ul>
<ul><ul><li>關於語法 </li></ul></ul>
<ul><ul><li>思考:為什麼要縮排? </li></ul></ul>
案例:兩個 if 的故事 <ul><li>if ( x ) if ( y ) statement1; else statement2;  </li></ul>{ { { } } } }
Python 語法 <ul><li>多了: 縮排 </li></ul><ul><li>少了 ( ) { } ; </li></ul><ul><li>對你的鍵盤好一點 </li></ul><ul><li>Readability counts. <...
if <ul><li>if a > b:   print a, &quot;>&quot;, b elif a < b:   print a, &quot;<&quot;, b else :   print a, &quot;=&quot;, ...
兩個 if 的故事 -Python 篇 <ul><li>if x : if y : statement1 </li></ul>else: statement2   else:   statement2
<ul><ul><li>思考:為什麼要這樣寫程式? </li></ul></ul>
為什麼我一定要這樣寫程式? <ul><li>可讀性優先 ; readability counts </li></ul><ul><li>把習慣養好 </li></ul><ul><li>方便大家協同作業,大家的程式碼一目瞭然。 </li></ul>
While <ul><li>while true:   print &quot;Spam&quot; else   print &quot;sa tainan&quot; </li></ul><ul><li>while i < 5:   i =...
For <ul><li>for i in lists:   print i </li></ul><ul><li>for line in open('file'): </li></ul><ul><li>如果要反覆特定次數:搭配 range() f...
函式 <ul><li>def print_sa():   print &quot;Study Area&quot; print_sa() ‏ </li></ul><ul><li>利用 return 回傳值 </li></ul><ul><li>注...
函式 引數 廣域變數 檔案 / 串流 區域變數 Return 可變更引數 廣域變數 檔案 / 串流 輸入 輸出
 
模組 <ul><li>找到檔案>編譯為 pyc >執行程式碼建立物件 </li></ul><ul><li>為了增加速度,模組匯入時會進行編譯。編譯為 pyc </li></ul><ul><li>搜尋路徑: sys.path </li></ul>
 
<ul><ul><li>關於說明文件 </li></ul></ul>
<ul><li>help() </li></ul><ul><li>dir() </li></ul><ul><li>Pydoc </li></ul><ul><li>說明文件和程式碼放在一起 </li></ul>
網路資源 <ul><li>PyTUG www. python.org.tw </li></ul><ul><li>irc.://irc.freenode.net/#python.tw </li></ul><ul><li>Ptt Python 討論...
Python 的核心思維 <ul><li>There is only one way to do it. 要做好一件事,只有一種方法。 </li></ul><ul><li>Everything is object. 萬物皆物件 </li></u...
 
 
Upcoming SlideShare
Loading in …5
×

Python Basic

2,872
-1

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,872
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
68
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Python Basic

  1. 1. <ul><ul><li>Python- 快快樂樂寫程式 </li></ul></ul>酷學園教學團隊 雨蒼
  2. 2. 個人背景 <ul><li>雨蒼 </li></ul><ul><li>目前為 [email_address] 窗口 </li></ul><ul><li>完全沒摸過程式語言 </li></ul><ul><li>曾去巨 x 學過 C++ 但是跟他不熟 </li></ul><ul><li>netman 老師教的 bash shell </li></ul><ul><li>偷看過 python 教學影片 </li></ul><ul><li>加入 lazybuntu 邊寫邊學 </li></ul>
  3. 3. Python 的核心思維 <ul><li>There is only one way to do it. 要做好一件事,一種方法就夠了。 </li></ul><ul><li>Everything is object. 萬物皆物件 </li></ul><ul><li>Readability counts. 可讀性優先 </li></ul><ul><li>Explicit is better than implicit. 明顯比隱晦好 </li></ul><ul><li>Simple is better than complex. 簡單比複雜好 </li></ul>
  4. 4. Python 的 優點 <ul><li>簡單易讀 </li></ul><ul><li>易於協同開發 ‏ </li></ul><ul><li>很快就可以上手 </li></ul><ul><li>記憶體回收機制 </li></ul><ul><li>養成良好習慣 </li></ul>
  5. 5. Python 的缺點 <ul><li>速度仍然比 C 慢 </li></ul><ul><li>跨平台 - 使用 Python 模擬器 (PVM) ‏ </li></ul><ul><li>有些超級老的 cpu 不能跑 </li></ul><ul><li>有些模組比較肥 (xml 相關 ) ‏ </li></ul>
  6. 6. 誰在用 Python <ul><li>Google </li></ul><ul><li>Youtube </li></ul><ul><li>BitTorrent </li></ul><ul><li>NASA </li></ul><ul><li>OLPC </li></ul><ul><li>Plurk </li></ul>
  7. 8. 執行第一個程式 <ul><li>副檔名: py </li></ul><ul><li>兩種作法:直譯器和執行 script </li></ul><ul><li>$ python 開啟互動介面 </li></ul><ul><li>python *.py </li></ul><ul><li>#!/usr/bin/python #!/usr/bin/env python </li></ul><ul><li>chmod a+x *.py </li></ul><ul><li>./*.py </li></ul><ul><li>中文注意:固定檔案編碼為 UTF-8 # -*- coding: utf-8 -*- </li></ul>
  8. 9. 如何寫出第一個程式 <ul><li>打開 IDLE </li></ul><ul><li>Print &quot;hello, world&quot; </li></ul>
  9. 10. <ul><ul><li>思考:為什麼要加上雙引號? </li></ul></ul>
  10. 11. 為什麼要加上雙引號 (&quot;) ‏ <ul><li>$ python print6.py 6 6 </li></ul><ul><li>到底 6 要當成字看還是要當成數字? </li></ul><ul><li>7 Traceback (most recent call last): File &quot;print6.py&quot;, line 4, in <module> print &quot;6&quot; + 1 TypeError: cannot concatenate 'str' and 'int' objects </li></ul>
  11. 12. <ul><ul><li>關於變數 </li></ul></ul>
  12. 13. 數值 (numbers) ‏ <ul><li>整數 (int) ‏ </li></ul><ul><li>浮點 (float) ‏ </li></ul><ul><li>長整數 (long) ‏ </li></ul><ul><li>八進位與十六進位 </li></ul><ul><li>複數 (complex) ‏ </li></ul><ul><li>布林值 (bool) ‏ </li></ul>
  13. 14. 數值運算與相關工具 <ul><li>+ - * / ** //... </li></ul><ul><li>遵守四則運算規則 </li></ul><ul><li>數學函式: pow abs... </li></ul><ul><li>Modules : random math... </li></ul><ul><li>轉換進制: oct() hex().... from decimal import Decimal Decimal() ‏ </li></ul><ul><li>集合 set() ‏ </li></ul>
  14. 15. 字串 (string) ‏ <ul><li>字串 (str) ‏ </li></ul><ul><li>Raw </li></ul><ul><li>Unicode </li></ul><ul><li>byte(in Python 3.0) ‏ </li></ul>
  15. 16. 字串運算與相關工具 <ul><li>+ *... </li></ul><ul><li>len() </li></ul><ul><li>slice notation </li></ul><ul><li>Replace ,Upper.... </li></ul>
  16. 17. Slice 0 1 2 3 4 5 [: :] [ 起使:終止:步進 ] E C I L S
  17. 18. List <ul><li>[ 'abc', 123 , [ 'a' , 'b' ] ] </li></ul><ul><li>可任意巢狀化,不限定型態 </li></ul>
  18. 19. List 運算與相關工具 <ul><li>+ * </li></ul><ul><li>len() </li></ul><ul><li>subscript and slice notation </li></ul><ul><li>extend , del , pop , sort </li></ul><ul><li>range() ‏ </li></ul>
  19. 20. Tuple <ul><li>( 'abc', 123 , [ 'a' , 'b' ] ) ‏ </li></ul><ul><li>內含物不可變更之 list </li></ul>
  20. 21. 辭典 (Dictionary) ‏ <ul><li>{ 'name' : 'billy3321' ,'jobs' : ['student', 'maintainer'], 'develop' : {'name' : 'lazybuntu', 'OS' : 'Ubuntu' } } </li></ul><ul><li>Key : Value </li></ul><ul><li>無序集合體,以 key 存取 </li></ul><ul><li>以 hash table 實作 </li></ul>
  21. 22. 辭典運算與相關工具 <ul><li>keys values items </li></ul><ul><li>update() pop() del..... </li></ul>
  22. 23. 檔案存取 <ul><li>myfile = open('myfile', 'w') myfile.write('hello study area hello sa taipei') myfile.close() ‏ </li></ul><ul><li>myfile = open('myfile', 'r') myfile.readline() myfile.readline() myfile.readline() myfile.readlines() myfile.close </li></ul>
  23. 24. <ul><ul><li>思考:如何儲存變數? </li></ul></ul>
  24. 25. 使用 pickle 直接儲存物件 <ul><li>D={'a':1 , 'b':2 , 'c':3} import pickle file = open('datafile.txt', 'w') pickle.dump(D, file) file.close() F = open('datafile.txt', 'r') F.readlines() E = pickle.load(F) print E </li></ul>
  25. 26. <ul><ul><li>思考:為什麼整數,數字不能改?我明明就可以改! </li></ul></ul><ul><ul><li>為什麼 List 自己會改變? </li></ul></ul>
  26. 27. 為什麼 Python 支援動態定型? <ul><li>整數,字串是不能改的?我明明就可以改他啊! </li></ul><ul><li>A = 3 B = A print A , B A = 'hello' print A , B </li></ul><ul><li>Refrence( 參照值 ) -> object( 物件 ) ‏ </li></ul><ul><li>屬性是屬於物件的,而變數就是參照值 </li></ul><ul><li>[ 'abc' , [(1, 2), ([3],4)],'def'] </li></ul>
  27. 28. [ 'abc' , [(1, 2), ([3],4)],'def'] ' abc ' (1, 2) ([3],4) 'd ef ' 1 2 [3] 4 3
  28. 29. 共用參照值與複製 <ul><li>L1 = [ 2 , 3 , 4 ] L2 = L1 L1[0] = 24 </li></ul><ul><li>L1 = [ 2 , 3 , 4 ] L2 = L1[:] L1[0] = 24 </li></ul>
  29. 30. 小型整數或字串會重複使用 <ul><li>X = 32 Y = 32 X == Y X is Y </li></ul><ul><li>import sys sys.getrefcount(1) ‏ </li></ul>
  30. 31. <ul><ul><li>關於語法 </li></ul></ul>
  31. 32. <ul><ul><li>思考:為什麼要縮排? </li></ul></ul>
  32. 33. 案例:兩個 if 的故事 <ul><li>if ( x ) if ( y ) statement1; else statement2; </li></ul>{ { { } } } }
  33. 34. Python 語法 <ul><li>多了: 縮排 </li></ul><ul><li>少了 ( ) { } ; </li></ul><ul><li>對你的鍵盤好一點 </li></ul><ul><li>Readability counts. </li></ul>
  34. 35. if <ul><li>if a > b: print a, &quot;>&quot;, b elif a < b: print a, &quot;<&quot;, b else : print a, &quot;=&quot;, b </li></ul><ul><li>if not a: </li></ul><ul><li>縮排建議固定使用空白 </li></ul>
  35. 36. 兩個 if 的故事 -Python 篇 <ul><li>if x : if y : statement1 </li></ul>else: statement2 else: statement2
  36. 37. <ul><ul><li>思考:為什麼要這樣寫程式? </li></ul></ul>
  37. 38. 為什麼我一定要這樣寫程式? <ul><li>可讀性優先 ; readability counts </li></ul><ul><li>把習慣養好 </li></ul><ul><li>方便大家協同作業,大家的程式碼一目瞭然。 </li></ul>
  38. 39. While <ul><li>while true: print &quot;Spam&quot; else print &quot;sa tainan&quot; </li></ul><ul><li>while i < 5: i = i + 1 print i </li></ul><ul><li>countinue break pass else </li></ul>
  39. 40. For <ul><li>for i in lists: print i </li></ul><ul><li>for line in open('file'): </li></ul><ul><li>如果要反覆特定次數:搭配 range() for i in range(5) print &quot;Spam&quot; </li></ul>
  40. 41. 函式 <ul><li>def print_sa(): print &quot;Study Area&quot; print_sa() ‏ </li></ul><ul><li>利用 return 回傳值 </li></ul><ul><li>注意:變數所存在之範圍 內建>廣域>函式>區域 </li></ul>
  41. 42. 函式 引數 廣域變數 檔案 / 串流 區域變數 Return 可變更引數 廣域變數 檔案 / 串流 輸入 輸出
  42. 44. 模組 <ul><li>找到檔案>編譯為 pyc >執行程式碼建立物件 </li></ul><ul><li>為了增加速度,模組匯入時會進行編譯。編譯為 pyc </li></ul><ul><li>搜尋路徑: sys.path </li></ul>
  43. 46. <ul><ul><li>關於說明文件 </li></ul></ul>
  44. 47. <ul><li>help() </li></ul><ul><li>dir() </li></ul><ul><li>Pydoc </li></ul><ul><li>說明文件和程式碼放在一起 </li></ul>
  45. 48. 網路資源 <ul><li>PyTUG www. python.org.tw </li></ul><ul><li>irc.://irc.freenode.net/#python.tw </li></ul><ul><li>Ptt Python 討論版 </li></ul>
  46. 49. Python 的核心思維 <ul><li>There is only one way to do it. 要做好一件事,只有一種方法。 </li></ul><ul><li>Everything is object. 萬物皆物件 </li></ul><ul><li>Readability counts. 可讀性優先 </li></ul><ul><li>Explicit is better than implicit. 明顯比隱晦好 </li></ul><ul><li>Simple is better than complex. 簡單比複雜好 </li></ul><ul><li>Import this – The Zen of Python </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×