十二月 7, 2009

周蟒--中文Python程式語言部落
zhpy
周蟒--中文Python程式語言部落 is about »
» 周蟒的新動態

最近終於又可以抽出時間,來好好改進一下周蟒。
接下來預計的改動如下:

1. 轉換到使用 Mercurial 分散式版本控制系統
2. 使用 Contribute 來取代 SetupTools (Contribute 可以支援 Python 3)

等轉換完之後,會開始試著完成使用 pyparsing3 來支援 python3 的工作。

Update: Contribute 在 Ubuntu 上因為會試圖取代 easy_install 命令,所以安裝時會失效
改來試 pip 看看好了。

八月 16, 2009

周蟒--中文Python程式語言部落
zhpy
周蟒--中文Python程式語言部落 is about »
» 1.7.3 展望:Android 上跑周蟒

開發中的 1.7.3 版本初步已可以在 Android Scripting Environment (ASE) 上跑, 如圖所示



目前可以在 android 上啟動 interpreter, 但該環境或介面還無法輸入或顯示中文.
而且要直接在 Android 上跑 ooo.twpy/xxx.cnpy 還有些 encoding 問題,

但可以透過 svn 中的 android.py (自行撰寫的 ASE android 函式庫 mockup)來在桌面端調試(example/droid/android.py),
直接在桌面端調試好後,用 "zhpy -p" 命令將周蟒程式轉換成 python 檔,再放到 Android 手機上去跑。

上週在 Coscup 09 上也做了一些演示 Demo

八月 12, 2008

周蟒--中文Python程式語言部落
zhpy
周蟒--中文Python程式語言部落 is about »
» 文摘

» 周蟒 1.5 之路

最近 weijr 寫了幾篇很有意思的文章:



weijr 提出了透過利用 python 會在程式檔開頭讀取編碼設定 (encoding) 的方法,來使用 python interpreter 直接執行如周蟒等程式,並且提出了基於周蟒 1.4 修改後的實做,其中許多修改很值得參考。

Python MagicCodec 0.1 裡有個大量修改過的周蟒 1.4 版本。

看到 weijr 願意修改 zhpy 並發佈一個自己的版本我還蠻開心的,這表示周蟒開始值得其他人花心力來修改了,也是種肯定。
但同時警覺到: 讓人寧願自己修改而不是發個 patch 給我們,也表示周蟒還有不足之處。

因為周蟒是採取測試驅動開發,而且目標是相容多個 python 版本與平台,
因此在周蟒實做中,我會避免使用 python 2.5 的語法或 python 2.6/3.0 時即將淘汰的語法,
而且代碼需要通過全部測試,從而保證釋出版本的質量,使用者才能放心地採用或自由修改。

周蟒本來就是一個採取測試驅動開發,集合大家創意的中文(python)程式語言,許許多多的功能都是由不同人貢獻出來(可以看 ChangeLog),才有今天的周蟒。

周蟒 1.5 將繼續重構,並同時加入一些更進階的關鍵字,也許會在這版本或下個版本加入透過 encoding 來使用 python 直接執行周蟒的方法。(如果 weijr 肯發個 patch 過來就更快啦 :D)

如果對周蟒原始碼有興趣,可以透過
svn co http://zhpy.googlecode.com/svn/trunk/
來取得原始碼

周蟒原始碼總是維持隨時都是可工作的。

» 周蟒近期動態 (5~8月)

數學表示法與周蟒

Mr. Monkey 寫了篇 zhpy 的另類用法

利用周蟒 可以用 ini 擴充詞庫的特性,加入數學符號對應,使得程式中可以直接寫出諸如

print sin(π/4) ≠ √(2)/2

這樣的語法,將收錄在下一版的周蟒範例中 (example/realmath)。

文字 RPG 與周蟒

文字 RPG 是使用 console 遊玩,沒有圖片,遊戲裡面的互動與戰鬥都是以文字來表示的一種古早遊戲方式。基於一個德國人寫的 textrpg 模組, 我也寫了篇
給我五分鐘,教你用中文腳本寫一個 RPG (使用 TextRPG)

Crunchy 與周蟒


Crunchy 是一個網頁介面的系統,可以在教學文章中的 python 語言區塊後端直接附上一個互動式 shell,讓讀者可以直接在同個頁面試驗。目前支援 python 2.4 以上環境。

因為 Crunchy 也是基於 utf-8 編碼,因此要讓 Crunchy 支援周蟒相當容易, 只要在原始碼中加上兩行敘述:

crunchy/src/interpreter.py

class InteractiveInterpreter(object):
....
def runsource(self, source, filename="User's code", symbol="single"):
....
try:
from zhpy import convertor
source = convertor(source)
code = self.compile(source, filename, symbol)

如此即可在 crunchy 的網頁介面中輸入周蟒程式碼。

五月 6, 2008

周蟒--中文Python程式語言部落
zhpy
周蟒--中文Python程式語言部落 is about »
» 周蟒 1.7 開發進度,interpreter 自動完成

昨天用 rlcompleter 讓周蟒 interpreter 支援自動完成(打單字自動補全關鍵詞,打英出中),
例如任意打出 '印'、'print'、'pri'、'prin' 後,按下 tab 鍵, shell 中就自動換成 '印出' 一詞。

以一段簡單的用迴圈印出資訊的程式碼為例:

>>> for i in range(10):
... print i
要達到等同於這段 python 程式碼的目的,在 zhpy interpreter 中,原本得輸入:
>>> 取 i 自 範圍(10):
... 印出 i
現在可以輸入
>>> for[tab] i in[tab] ran[tab](10):
... pri[tab] i
每次按下 tab 鍵,interpreter 就會自動將 "for"、"in"、"range"、"print" 等關鍵字轉換成 "取"、"自"、"範圍"、"印出"等周蟒關鍵詞,大幅簡化輸入的次數。

期待簡中開發者加入,協助增加利用拼音方式的自動完成。

A Feedjack powered Planet
A Django site.