2007年12月5日 星期三
周蟒特點 -- 一段與 Ping 的對話
P: 你的周蟒會唸詩嗎?不然來首小曲也不錯
G: 不會,周蟒比較宅。
周蟒會排紫微斗數盤;
周蟒會網頁開發 karringell;
周蟒會畫圖。
周蟒可以寫 AVG 腳本...
P: 周蟒重點是教學?周蟒的獨特之處是什麼?
G: 目前教學是最強的特點吧。
可以用中文來 modeling 生活中的事件,將物件導向映射到生活中。
周蟒生成 python code 後執行速度也很不賴,而且可以寫中文系統腳本 @@
還有與 python 的無縫轉換。
P: 轉過去還轉得回來嗎?
G: 可以!!! 雙向轉換!!
當然,會有點不一樣,不過可以無限地互轉而且都能動
G: 話說回來....實用性也算是教學考量之一, 果然我是搞教育推廣的 Orz
生活化編程一起來 -- 用周蟒建立宅男模塊
有了周蟒,編程可以更生活化。
生活化編程這個 idea 的源起來自於一則學了 python 後就會飛起來的漫畫
http://xkcd.com/353/
在某地的討論過程中充滿了玩笑與歡樂,
發現學習 python 編程應該可以更有樂趣。
為了讓更模組更容易被理解, 所以使用周蟒.
當然也歡迎用 python 擴展:
我先丟一個基本範例,歡迎大家盡量擴展 XD
類別 宅男(男):
"""
http://zh.wikipedia.org/wiki/宅男 (通俗用法)
"""
定義 __初始化__(我):
我.知識=[keroro]
定義 把妹(我):
引發 尚未實作
聚合後完整的模塊會放在 zhpy.blogspot.com 上.
2007年12月2日 星期日
周蟒(zhpy) 1.4 Beta1 發佈, 加強本地化
請使用 「$ easy_install -U zhpy」 命令來下載或更新周蟒版本,或前往網站查看更多關於周蟒的內容 http://code.google.com/p/zhpy/
這版本加強了許多在地化的設定
1. 試驗中的中文 traceback 支持(目前僅支援一般執行模式,不支援直譯器)
2. 初步支持測試, 可以用 測試_xxx() 這樣的函數編寫測試用例. 編成 .py 後使用 nosetests 命令測試.
3. 次要關鍵詞的修正
4. 開啟 zhpy interpreter 時判斷系統編碼自動顯示繁簡中文 banner (ex: 周蟒 1.4b1 於 darwin 基於 Python 2.5.1)。
zhpy Changelog
====================
1.4b1 (12/3/2007):
--------------------
code name: Yellow Temperance
*Changes*
* change keyword:
* '操作系统错误' instead of '作业系统错误':"OSError"
* '申明' instead of "宣告":"assert"
* "申明錯誤" instead of "宣告錯誤":"AssertionError"
* "申明错误" instead of "宣告错误":"AssertionError"
* add traceback term plugins (not functional yet)
*Features*
* while open interpreter, autodetect and show the localized banner
* experimental chinese traceback support in convertor (not support in interpreter)
* add keyword:
* "全域":"global"
* "全域變量":"globals","全域变量":"globals"
* "測試":"test", "测试":"test"
* "物件":"object", "对象":"object"
* able to test though generated python file ($ nosetests n_xxx.py)
*Fixes*
* fix triple quote bug, thanks renhbo
* allow cascading 2 identifiers (cascade 3 or more identifiers is not support)
*Project Updates*
*Contributors*
Fred Lin, renhbo
2007年11月6日 星期二
2007年11月5日 星期一
2007年11月4日 星期日
周蟒(zhpy) 1.3 版發佈, 解壓縮即用
請使用
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
這版本主要是增加解壓縮即用(開箱即用/Battery Included)的能力.
附帶了 pyparsing 模塊.
只要下載了源碼包(Source Pack), 解壓縮後即可直接執行
$ python interpreter.py
來直接試用周蟒直譯器. 或執行
$ python commandline.py
來執行周蟒程式或轉換 python 程式成周蟒程式. (跟一般周蟒命令列工具用法相同)
只有想要用中文系統腳本或隨處可執行周蟒的情況下才一定得安裝周蟒.
就像漫畫 jojo 冒險野郎中的白蛇能抽取替身能力者的能力成為 Disc, 將Disc放到任何人身上這個人就立即擁有該替身能力一樣.
另一個特點是模塊包更獨立. 繁簡中文插件包是分開的.
你可以從源碼包中刪掉用不著的簡體中文插件(plugcn.py), 周蟒仍能正常執行.
或是從源碼包中單獨取出 interpreter.py(直譯器), zhpy.py(核心), zhdc.py(關鍵詞轉換庫), plugtw.py (繁中插件) 四個檔(如果沒裝 pyparsing 的話也要拷貝 pyparsing.py), 執行
$ python interpreter.py
也能執行有限功能的周蟒(zhpy core).
zhpy Changelog
====================
1.3 (11/5/2007):
--------------------
code name: White Snake
*Changes*
* Separate traditional and simplified chinese keywords from zhdc to plug[lang].py
* moveout plugins' setuptools dependency, now you can try zhpy without install.
* change keyword:
* "引用錯誤", "引用错误" instead of "参考错误":"ReferenceError"
* make py_annotator work while only plugtw or plugcn exists.
*Features*
* support custom name space in zh_exec, thanks renhbo
* able to run the commandline without install
* able to run the interpreter with 4 module ["interpreter", "zhpy", "zhdc", "plug[lang]"]
without install (core mode)
* able to profiling standalone interpreter with "--profile" option
*Fixes*
* fix keyword "locals" instead of "local"
* generate proper profix while the origin source is suffixed with '.tw.py' or '.cn.py'
*Project Updates*
* include pyparsing in distribution
* doc update
* add official zhpy blog: http://zhpy.blogspot.com/
* remove zhpy_ext sample
*Contributors*
Fred Lin, renhbo
2007年11月2日 星期五
2007年10月30日 星期二
2007年10月19日 星期五
周蟒 1.2 版發佈
請使用 $ easy_install -U zhpy 命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容 http://code.google.com/p/zhpy/
主要加強有:
* 內建 sys 模組關鍵詞
http://code.google.com/p/zhpy/wiki/ZhpyModules
* 加入雙向轉換測試用例
test_api.py
* 雙向中文變量轉換 zh_chr/zh_ord
assert zh_chr(zh_ord('範例'.decode("utf8"))) == '範例'
* 雙向中文中文檔名轉換
$ zhpy -p 範例.py
產生檔名 p_7bc4_4f8b_v.py
再用 $ zhpy --tw p_7bc4_4f8b_v.py
產生檔名 v_範例.py
另外歡迎 renhbo 加入開發者行列
1.2 (10/19/2007):
--------------------
code name: Requiem
*Changes*
* Use build-in int function to convert hex string, thanks Jiahua Huang
* refactor repeative tripleQuote pattern to single place (zhpy)
* refactor 'number_to_variable' function to 'zh_chr' function (pyzh)
* refactor 'variable_to_number' function to 'zh_ord' function (zhpy)
* support chinese filename to uri filename while convert with '-p'
option
* zh_ord and zh_chr are bi-direction convertable now
* change keyword:
* '最大值' instead of '最大':'max'
* '最小值' instead of '最小':'min'
* '最大值' instead of '最大':'max'
* '最小值' instead of '最小':'min'
* '反 ' instead of '逆 ':'reverse',
*Features*
* add zhimport module to support chinese file name import, thanks
Jiahua Huang
* checked in experimental direct zhpy module import(disabled), thanks
Jiahua Huang
* add build-in sys module keyword plugin
* add pyzh and bi-directional translation tests
*Fixes*
* support multilines comments with triple single quote, thanks renhbo
*Project Updates*
* set svn:external to update ez_setup script automaticaly
* renhbo joined as the project member
*Contributors*
2007年10月12日 星期五
周蟒 1.1.1 版發佈
請使用
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
主要是解決幾個 bug:
* 程式或直譯器中可以導入當前目錄下的模組
* 解決文件字串(docstring)解析不正常的問題
感謝 renhbo 提出這些問題, 大家才有更完整的周蟒可用.
1.1.1 (10/12/2007):
--------------------
code name: Dark Blue Moon
*Changes*
*Features*
*Fixes*
* Able to import modules in current directory with interpreter or
script, thanks renhbo
* fix python to zhpy command with any ini file in current directory,
thanks renhbo
* fix multilines comments translated incorrectly
*Project Updates*
* update release note
*Contributors*
2007年10月8日 星期一
周蟒 1.1 版發佈
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
----
這版本主要是增加 python 程式轉周蟒程式(--tw | --cn)的命令
使用方式:
拿任一個 python 程式 (source.py), 運行
$ zhpy --tw source.py
則此 python 程式會被轉換成 v_source.twpy 周蟒程式.
你也可以透過多次反向轉換來驗證周蟒與 python 的相容性
$ zhpy --p source.py
$ zhpy --tw n_source.py
.....
2007年10月4日 星期四
周蟒 1.0 版發佈
Python 版本,完全與 Python 相容的中文程式語言。
周蟒包含 Python 中文關鍵詞對應轉換,互動式直譯器,中文腳本等功能,並提供 咬一口周蟒中文程式語言電子書。可同時用作學習周蟒與 Python 語言。
2007年9月28日 星期五
周蟒 0.9.4版發佈
很高興通知大家, 經過中秋假期的努力, 周蟒 0.9.4版剛發佈了(代號 銀色戰車) , 請使用
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
使用者察覺的改動:
=================
* wikipedia 新增周蟒條目, 歡迎幫忙完善
http://zh.wikipedia.org/w/index.php?title=ZhPy&variant=zh-tw
* 重寫命令行工具, 現在周蟒腳本終於跟 Python 一樣, 能接受命令行參數了
* 移除中文標點符號支援, 原因寫在 [周蟒中文程式語言的四不一沒有] 中
http://inet6.blogspot.com/2007/09/blog-post_22.html
* 修改自"Byte of Python" 的 "咬一口周蟒中文程式語言" 電子書已將前一大半章節編修完成, 範例採用一段周蟒程式搭配一段對應
的Python程式的方式, 有了電子書, 學習周蟒更安心, 搭配對應的 Python 程式用作教學也更有彈性,
http://code.google.com/p/zhpy/wiki/ByteOfZhpy
* 註解不再錯被翻譯成英文
* 提供兩個指代 "self" 的關鍵詞: "其" 和 "我"。 雖然"其"字似乎用作關鍵詞很漂亮。
不過要追求更白話的周蟒, 也加入了 "我" 這個關鍵詞。
0.9.4 (9/28/2007):
--------------------
code name: Silver Chariot
*Changes*
* remove chinese punctuations support
* change keyword
* use "檔案", " 案" instead of "文件":"file"
* use "返回" instead of " 回":"return"
* use "組合", " 合" instead of "數組":"tuple"
*Features*
* allow zhpy script with commandline arguments
* add keyword:
* "其":"self"
* "我":"self"
*Fixes*
* fixed comment shouldn't be translated
* 'byte of zhpy' doc update
*Project Updates*
* rename zhpy_interpreter.py to interpreter.py
* rename zhpy_cmd.py to commandline.py
* rename zhpy_info.py to info.py
* new commandline utility
* remove command shortcut: "zhpy [input] [output]", use "zhpy -i
[input] -o [output]" or
"zhpy -p [input]"
*Contributors*
Fred Lin
歡迎大家下載使用並多多提供建議。
2007年9月15日 星期六
周蟒 0.9.3版發佈
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
使用者察覺的改動:
=================
1. 加入關鍵詞 * "區域變量":"local", " 域 量":"local"
2. 加入各種例外(exception)中文關鍵詞
3. 括號中的標點不再被不正常地替換
4. 檔案夾中放不合法的 ini 檔時不再導致程式中斷.
0.9.3 (09/15/2007):
--------------------
code name: Gray Tower
*Changes*
*Features*
* catch up exception definitions http://www.chinesepython.org/doc/ref.html
* make chinese punctuation be a plugin
* add keyword:
* "區域變量":"local", " 域 量":"local"
* Downloadable API Doc
*Fixes*
* make incorrect ini file not cause exception
* fix replacedict, thanks renhbo
* fix miss-replaced punctuations in quotestring
*Project Updates*
* update ez_setup.py to 0.6c7
*Contributors*
Fred Lin, renhbo
2007年9月10日 星期一
周蟒 0.9.2版發佈
使用者察覺的改動:
=================
1. 補充了不少關鍵字.
2. 使用 zhpy --info 命令會看到較多插件.
開發者察覺的改動:
==================
1. 進一步依賴 0.9 引入的插件架構, twdict, cndict 完全靠插件與 ini 檔動態來建立.
2. 重構註解器(annotator), ini 跟 py 插件處理分離, 架構為更清晰.
3. 分離關鍵字表, 關鍵字透過插件架構加入 twdict, cndict.
除了直接查找時更容易外, 也有利於 GUI 呼叫.
http://zhpy.googlecode.com/svn/trunk/zhpy/zhdc.py
4. 插件由字典換成物件. 提供新插件範本下載
http://code.google.com/p/zhpy/downloads/detail?name=zhpy_ext_0.2.zip
5. 插件中提供更多訊息. 以下是呼叫插件方式:
>>> import pkg_resources
>>> for entrypoints in pkg_resources.iter_entry_points("zhpy.twdict"):
... tool = entrypoints.load()
... print tool.title
...
...
內部函數
例外
周蟒
內建關鍵詞
插件還提供除了 title 之外的屬性:
* description: 中文描述
* keyword: 關鍵詞字典
安裝
==========
請使用
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
2007年9月8日 星期六
周蟒 0.9.1版發佈
周蟒 0.9.1版發佈(代號 紅色魔術師),
主要更新如下:
* 較漂亮的插件訊息 "zhpy --info" 輸出.
* 內建的繁簡中文關鍵字典加入插件系統, twdict, cndict 將出現在"zhpy --info" 顯示的插件列表中.
* 移除 twdict, cndict 這兩個例外情況, worddict 現已完全靠插件與ini檔動態來建立.
* 加入 "周蟒":"zhpy", 中文執行":"zh_exec" 關鍵字.
因為"執行":"exec"函式並不支援中文, 所以在周蟒中建議使用
{{{
>>> 從 周蟒 導入 中文執行
>>> 中文執行("印出 'hello'")
hello
}}}
* 通過60筆以上的測試用例
* 起司蛋糕評分[1]達到 92
* 網站已附帶部份的 [咬一口周蟒] 開源書籍 http://code.google.com/p/zhpy/wiki/ByteOfZhpy
請使用
$ easy_install -U zhpy
命令下載或更新周蟒版本.
或前往網站查看更多關於周蟒的內容
http://code.google.com/p/zhpy/
[1] http://www.pycheesecake.org
2007年9月5日 星期三
周蟒 0.9版發佈
周蟒 0.9版發佈(代號 世界), 主要更新如下:
* 關鍵字插件系統, 附插件範本
http://code.google.com/p/zhpy/wiki/ModulePlugin
* 直譯器可搭配 ini 使用
http://code.google.com/p/zhpy/wiki/PlugKeywords
* 可將周蟒當作系統腳本使用
http://code.google.com/p/zhpy/wiki/ExampleHello
* 修正編碼判斷問題
* Good Practice: cheesecake rate 到達 92% (502/545)
http://www.pycheesecake.org
請使用
$ easy_install -U zhpy
命令下載或更新.
目前周蟒文件正以 '咬一口 Python 程式語言' 為範本,
改編成 '咬一口周蟒程式語言'.
只要初步比較就可以確信周蟒確實可以當作 python 程式語言的中文替身 :)
2007年8月30日 星期四
zhpy 0.8版發佈
zhpy 0.8版發佈(代號 自由之石), 主要更新如下:
* 內建中文編程的互動式直譯器 (zhpyi.py)
* 內建 zhpy 轉 python 庫 (pyzh.py)
* 獨立關鍵字庫 zhdc.py
* 獨立命令行工具 zhpy_cmd.py
* 更多繁簡關鍵字
* 自動編碼識別, 不強制用 utf-8 編輯方便在 windows 下使用.
* 命令行可用 -e/--encoding 選項指定編碼
* 架構整理
* 可用附檔名 .tw.py, .cn.py 來區別繁簡體 zhpy 程式
* 更多測試與範例
使用 zhpy 命令不帶參數即進入互動式直譯器模式, 啟動方式跟 python 一樣, 範例:
$zhpy
..........
>>> 印出 "hello"
hello
可使用 easy_install 命令安裝.
$ easy_install zhpy
命令會自動從 http://python.org/pypy /zhpy 下載程式下來安裝.
2007年8月25日 星期六
zhpy 0.7版發佈
zhpy 0.7版發佈(代號 黃金體驗), 主要更新如下:
* 基於 unicode 的唯一識別符關鍵字
* 繁簡關鍵字詞典分開維護, 以供第三方程式取用
* 中文腳本改以 -c 執行, 以對應 python 命令
$ zhpy -c "印出 'hello'"
* 繁簡關鍵字更新, 提高字典同步率
* 用附檔名 .twpy, .cnpy 來區別繁簡體 zhpy 程式
* 完整的測試
* 單元測試(unittest)
* 文件測試(doctest)
* 範例測試(example)
* 命令行測試(cmd line)
本來說是會在 python 3000 發佈之後才出新版,
不過這幾天 jiahua huang 提出了如英轉中, zhipy 互動直譯器的概念實作,
zhpy 開發從其中擷取了不少精華, 受益頗多.
例如簡中部份的字典也是從 zhipy 互動直譯器實作中更新,
這版本在 zhpy 內部先作了一些改動,
讓第三方程式更容易重用 zhpy, 繁簡關鍵字也都各有些更動, 好在兩種字典間取得較高的一致性.
事實上用附檔名 .twpy, .cnpy 來區別繁簡體 zhpy 程式在目前 zhpy 中並沒有明顯功用. 不過對文件寫作跟直觀的識別上已有相
當幫助.
由於完整度的關係, interpreter 還不會隨著 zhpy 發佈,
2007年8月22日 星期三
zhpy 0.6版發佈
zhpy 0.6版 (代號 瘋狂鑽石)發佈, 主要更新如下:
* 強化簡體中文支援
* 補足關鍵字表
* 附帶完整的繁簡體關鍵字測試用例
* 中文腳本
* 加入了新的 scripting 能力, 可在 shell 中使用中文腳本
* 穩定性
* 附帶 >50 則測試用例
* 函式以 doctest 測試
$ zhpy -r "印出 'hello'"
透過 "zhpy -r" 命令,現在要嘗試 zhpy 變得更加容易,
而透過中文腳本(zhpy)來管理系統也不再是遙不可及的事.
http://code.google.com/p/zhpy/
特別致謝: "zhpy -r" 命令的主意來自 JiaHua Huang 的啟發
PS: zhpy 大致上的功能已經完整了, 之後的版本發佈會開始慢下來.
下個版本釋出日期應該會在 python 3000 發佈之後
2007年8月19日 星期日
zhpy 0.5 版發佈
zhpy 0.5 已經發佈了, 主要是加入在 Python 程式中嵌入中文程式執行的函式 "zh_exec", 跟 unit test
suite(針對繁體關鍵字).
繁中部份開發已相對穩定下來了, 剩下簡中部份仍需補完,
歡迎使用簡體中文的開發者加入幫忙補完簡中關鍵字,文檔, 與 unit test suite.
也歡迎其他繁體中文開發者/使用者提供意見. 有新要求或 bug 可 po 在 http://code.google.com/p/zhpy/issues/list
之所以急著發佈 0.5 是因為 0.5 加入了一個很酷的功能 -- zh_exec()
zh_exec() 方便 python 使用者在 interpretor 中試用 zhpy:
$ python
>>> from zhpy import zh_exec
>>> zh_exec("print 'hello'")
hello
>>> zh_exec("印出 '哈囉'")
哈囉
>>> zh_exec(a=1; 如果 a 為 1: 印出 'a = 1'")
a = 1
請前往 zhpy 官網下載/查詢訊息
http://code.google.com/p/zhpy/
也可查看 zhpy RoadMap
http://code.google.com/p/zhpy/wiki/RoadMap
2007年8月17日 星期五
zhpy 0.4 版發佈
zhpy 0.4 已經發佈了,
提供使用文件, 更多關鍵字, 外掛關鍵字,
強化 command line 工具.
加上 -p 參數, 可直接產生新檔案並運行
$ zhpy -p hello.py
compile to python and run: n_hello.py
hello world
$ ls
hello.py n_hello.py
zhpy 目前已經到 0.4 版囉, 歡迎 Python 新手提出對 zhpy 的各種疑問與不足.
可以對項目產生貢獻的方法很多, 歡迎新的開發者加入喔 ^_^
zhpy 的 svn 中提供一個在 Python 程式中嵌入中文程式執行的函式 "zh_exec",
可以以如同 python exec 函式的用法來使用:
$ python
>>> import zhpy
>>> zhpy.zh_exec("print 'hello'")
hello
>>> zhpy.zh_exec("印出 '哈囉'")
哈囉
這個功能會出現在下個版本 (0.5 版) 中.
請前往 zhpy 官網查詢訊息
http://code.google.com/p/zhpy/
2007年8月13日 星期一
zhpy 0.3 版發佈
主要的更新是加入了一些標準關鍵字, 支援外掛自訂的關鍵字, 和更多的文件.
例如要用 pygame 寫遊戲, 可以在程式所在目錄中加入一個 pygame.ini 檔紀錄外掛的關鍵字
http://zhpy.googlecode.com/svn/trunk/examples/game/test.py
http://zhpy.googlecode.com/svn/trunk/examples/game/pygame.ini
2007年8月9日 星期四
周蟒(zhpy) : 輕量的中蟒
特點:
* 只有 8k 的中蟒
* 可用 easy_install 安裝
* 可以用 list comprehension, new style class 等 py2.4, py2.5 新功能的中蟒
* 可以混用繁簡中英關鍵字
* 可用中文(zhpy) source 生成 python source
* 同樣的 code 應該也可以改成日蟒, 韓蟒 XD
適用:
初學者/中文腳本/教學用途
設計思路:
使用 pyparsing 查找取代中文關鍵字, 類別名稱, 定義名稱, 變量, 參數成英文 source 後執行.
範例:
允許使用命令執行
zhpy hello.py
(一般用 python hello.py)
指定檔案可產生一般英文 python code
zhpy hello.py nhello.py
zhpy 構造相當簡單, 但效果卻不錯,
在 google code 上建立了一個 zhpy project 可抓 source
http://code.google.com/p/zhpy/
歡迎有興趣的人加入開發或幫忙維護文件, 網站呀
PS: 原始 idea 來自 HYRY 的 code