SlideShare a Scribd company logo
1 of 44
Download to read offline
英文不太好,也能第一次程式設
計就上手-- 使用Python 與周蟒(ZHPY)
gasolin on tossug2008
http://zhpy.googlecode.com
我為甚麼想要編寫程式?
思考
學習新把戲
程式設計
Programming
加強邏輯能力
優雅、清晰地表達想法
Logic
討生活
教教我可以月入數萬的技巧
Application
選擇程式語言
從哪開始?
從甚麼程式語言開始?
選擇適合我的程式語言條件
●用的上的程式語言
●符合自己學習能力的程式語言
●參考資料多的程式語言
●有特色的程式語言
最重要的
對初學者
成就感
學了後立即能用上
學習時能很容易看到結果
思考
寫漂亮的程式?
還是寫好讀的程式?
五項修練
Programmer 的
 
背景知識
榮譽心
文件維護
工具
計概
輸出、輸入、硬碟、
記憶體、CPU、網路...
背景知識
工具
x 11 路 v 腳踏車
Utilities
x 歪哥 v 正妹
維護
讀程式的機會 >> 寫程式的機會
Maintainance
文件
Documentation
X 接手維護的人該死
X 生命會為自己找出
路
v 簡單易讀的文件
x 榮譽心 v 交差:p
把事情做完
還是把事情做好?
做對的事情?
還是把事情做對?
範例
As for Python
It’s gorgeous. It’s like poetry. It’s so clean, so logical, so
regular, so obvious. And the import system is to-die-for.
-- Adrian Holovaty,, creator of Django
Python 程式語言...特性
跨平台、簡單、易讀、有風格
$ python
 >>> import this
周蟒程式語言...特性
●Python 語法
●中文關鍵詞, 中文變數
●用阿拉伯數字與數學運算符號
●用英文標點符號
●能與 Python 程式雙向轉換
程式
互動式直譯器
$zhpy --tw
周蟒 1.4 於 darwin 基於 Python 2.5.1
>>>
>>> 股市指數 = 輸入('指數:')
指數: 8300
>>> 印出 股市指數
8300
輸入/
印出
輸入/印出
程式:
股市指數 = 輸入('指數: ')
印出 股市指數
執行:
$zhpy a.twpy
指數: 8000
8000
型別
字串、數字
>>> a = 1; b = 2
>>> a + b
3
>>> 茶 = 'tea'
>>> 長度(茶)
3
>>> tea = 'tea'
>>> len(tea)
3
>>> 1 == 1
True
>>> 1 == 2
False
>>> 1 != 2
True
>>> 2 != 2
False
布林 (True/False)
多元組 tuple
變數值互換
>>> a = 1; b = 2
>>> b, a = a, b
>>> a, b
(2, 1)
一次完成賦值
>>> 聯絡資料 = ('gasolin',
'霍格華茲',
'貓頭鷹7號')
>>> 姓名, 地址, 聯絡方式 = 聯絡資料
>>> 地址
霍格華茲
其他語言:
temp = a
a = b
b = temp
列表 list
>>> 人物 = ['哈利', '榮恩']
>>> 人物.加入('妙麗')
取值
>>> 人物[2]
'妙麗'
>>> 人物[1:]
['榮恩', '妙麗']
>>> 人物
['哈利', '榮恩', '妙麗']
>>> 人物[::-1]
['妙麗', '榮恩', '哈利']
字典 dict
>>> 魔法物品 = {
                 '飛天掃帚':'Broomsticks',
                 '港口鑰':'PorkKey'
                 }
設定參數
>>> 魔法物品['港口鑰'] = 'PortKey'
取得參數
>>> 魔法物品['港口鑰']
'PortKey'
流程
如果..否則
程式:
股市指數 = 輸入('指數: ')
如果 股市指數 > 9000:
        印出 '政府英明'
否則:
        印出 '都是阿共仔的陰謀啦'
執行:
指數: 8300
都是阿共仔的陰謀啦
迴圈
程式:
""" 九九乘法 """
取 乘數 自 範圍(1, 10):
    取 被乘數 自 範圍(1, 10):
        印出 '%d * %d = %d'%
                (乘數, 被乘數, 乘數 * 被乘數)
執行:
1 * 1 = 1
1 * 2 = 2
...
函式
程式: zhpy/example/loop/tabl.twpy
#coding=utf-8
定義 算表(表格大小):
    取 乘數 自 範圍(1, 表格大小+1):
        取 被乘數 自 範圍(1, 表格大小+1):
            印出 "%d*%d=%d"%(乘數,被乘數,乘數*被乘數)
算表(3)
物件
物件
程式:
類別 鴨子(物件):
    定義 呱呱叫(我):
         印出  '呱呱'
主程式:
    番紅鴨 = 鴨子()
    番紅鴨.呱呱叫()
執行:
'呱呱'
繼承
程式:
類別 鳥類(物件):
    定義 呱呱叫(我):
         略過
類別 鴨子(鳥類):
    定義 呱呱叫(我):
         印出  '呱呱'
中文腳本
腳本:
#!/usr/bin/env zhpy
#coding=utf-8
導入 系統
印出 系統.參數
執行:
$ ./hello_arg.twpy hello world
['./hello_arg.twpy', 'hello', 'world']
● view in examples/hello_arg.twpy
系統
周蟒基本架構
設計
特點:與 Python 程式的完全互換
特點:唯一識別符號(URI)
End
● 請到周蟒網站下載周蟒
● 或閱讀咬一口周蟒語言電子書.
● 關鍵字: python、周蟒、zhpy

More Related Content

Similar to 第一次程式設計就上手 - 使用Python 與周蟒(zhpy)

Py ladies 0928
Py ladies 0928Py ladies 0928
Py ladies 0928Yen_CY
 
[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走台灣資料科學年會
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhouWill Zhou
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdfczzz1
 
Python 入门
Python 入门Python 入门
Python 入门kuco945
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hackingMike Ching
 
Programming python - part 1
Programming python - part 1Programming python - part 1
Programming python - part 1Che-Cheng Hsu
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse EngineeringYC Ling
 
Pycontw2013x
Pycontw2013xPycontw2013x
Pycontw2013xweijr
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IHung-yu Lin
 
北區GDSC20231112.pdf
北區GDSC20231112.pdf北區GDSC20231112.pdf
北區GDSC20231112.pdfssuserded2d4
 
JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包書豪 李
 

Similar to 第一次程式設計就上手 - 使用Python 與周蟒(zhpy) (20)

Py ladies 0928
Py ladies 0928Py ladies 0928
Py ladies 0928
 
[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhou
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
 
Python系列4
Python系列4Python系列4
Python系列4
 
Fp
FpFp
Fp
 
Python 入门
Python 入门Python 入门
Python 入门
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hacking
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
Programming python - part 1
Programming python - part 1Programming python - part 1
Programming python - part 1
 
Python 爬蟲實戰
Python 爬蟲實戰Python 爬蟲實戰
Python 爬蟲實戰
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse Engineering
 
Pycontw2013x
Pycontw2013xPycontw2013x
Pycontw2013x
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part I
 
北區GDSC20231112.pdf
北區GDSC20231112.pdf北區GDSC20231112.pdf
北區GDSC20231112.pdf
 
JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包
 
第1章 概论
第1章 概论第1章 概论
第1章 概论
 
Django step0
Django step0Django step0
Django step0
 
[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰
 

More from Fred Lin

How to create 360 Image/panorama & share with WebVR?
How to create  360 Image/panorama & share with WebVR?How to create  360 Image/panorama & share with WebVR?
How to create 360 Image/panorama & share with WebVR?Fred Lin
 
Blocklyduino Poster
Blocklyduino PosterBlocklyduino Poster
Blocklyduino PosterFred Lin
 
Javascript征服世界是可能的嗎?
Javascript征服世界是可能的嗎?Javascript征服世界是可能的嗎?
Javascript征服世界是可能的嗎?Fred Lin
 
Firefox os how large open source project works
Firefox os   how large open source project worksFirefox os   how large open source project works
Firefox os how large open source project worksFred Lin
 
Capable Web: Chrome Apps and Firefox Webapp
Capable Web: Chrome Apps and Firefox WebappCapable Web: Chrome Apps and Firefox Webapp
Capable Web: Chrome Apps and Firefox WebappFred Lin
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOSFred Lin
 
Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Fred Lin
 
Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Fred Lin
 
Maintain and share your python project (維護和分享 Python 程式專案)
Maintain and share your python project (維護和分享 Python 程式專案)Maintain and share your python project (維護和分享 Python 程式專案)
Maintain and share your python project (維護和分享 Python 程式專案)Fred Lin
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webappFred Lin
 
Firefox OS overview
Firefox OS overviewFirefox OS overview
Firefox OS overviewFred Lin
 
人人能編程是可能的嗎?
人人能編程是可能的嗎?人人能編程是可能的嗎?
人人能編程是可能的嗎?Fred Lin
 
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介Fred Lin
 
Android + jenkins
Android + jenkinsAndroid + jenkins
Android + jenkinsFred Lin
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App EngineFred Lin
 
Taipei gtug opening
Taipei gtug openingTaipei gtug opening
Taipei gtug openingFred Lin
 
Google IO 2011 recap
Google IO 2011 recapGoogle IO 2011 recap
Google IO 2011 recapFred Lin
 
Introduction of Google Code and Mercurial
Introduction of Google Code and MercurialIntroduction of Google Code and Mercurial
Introduction of Google Code and MercurialFred Lin
 
Introduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentIntroduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentFred Lin
 

More from Fred Lin (19)

How to create 360 Image/panorama & share with WebVR?
How to create  360 Image/panorama & share with WebVR?How to create  360 Image/panorama & share with WebVR?
How to create 360 Image/panorama & share with WebVR?
 
Blocklyduino Poster
Blocklyduino PosterBlocklyduino Poster
Blocklyduino Poster
 
Javascript征服世界是可能的嗎?
Javascript征服世界是可能的嗎?Javascript征服世界是可能的嗎?
Javascript征服世界是可能的嗎?
 
Firefox os how large open source project works
Firefox os   how large open source project worksFirefox os   how large open source project works
Firefox os how large open source project works
 
Capable Web: Chrome Apps and Firefox Webapp
Capable Web: Chrome Apps and Firefox WebappCapable Web: Chrome Apps and Firefox Webapp
Capable Web: Chrome Apps and Firefox Webapp
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
 
Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)
 
Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)
 
Maintain and share your python project (維護和分享 Python 程式專案)
Maintain and share your python project (維護和分享 Python 程式專案)Maintain and share your python project (維護和分享 Python 程式專案)
Maintain and share your python project (維護和分享 Python 程式專案)
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webapp
 
Firefox OS overview
Firefox OS overviewFirefox OS overview
Firefox OS overview
 
人人能編程是可能的嗎?
人人能編程是可能的嗎?人人能編程是可能的嗎?
人人能編程是可能的嗎?
 
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
 
Android + jenkins
Android + jenkinsAndroid + jenkins
Android + jenkins
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App Engine
 
Taipei gtug opening
Taipei gtug openingTaipei gtug opening
Taipei gtug opening
 
Google IO 2011 recap
Google IO 2011 recapGoogle IO 2011 recap
Google IO 2011 recap
 
Introduction of Google Code and Mercurial
Introduction of Google Code and MercurialIntroduction of Google Code and Mercurial
Introduction of Google Code and Mercurial
 
Introduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentIntroduction Of Android Scripting Environment
Introduction Of Android Scripting Environment
 

第一次程式設計就上手 - 使用Python 與周蟒(zhpy)