2009年8月10日 星期一

周蟒 1.7.2 發佈

周蟒 1.7.2 (代號 死神13) 已發佈。可前往網站下載, 或使用
easy_install -U zhpy
命令來更新。

相容 python 2.6,在 Windows、Ubuntu 上測試過。

2009年5月9日 星期六

台灣報稅試算 2009 版

報稅季節又到了,雖然官方提供的網路報稅工具相當好用,
但有時不免對官方提供的工具心存懷疑,
深怕太過依賴官方工具,哪天政府在工具上偷偷動了些手腳,讓自己不知不覺間多交了點稅。

因此自己在報稅時順便更新了周蟒版的 台灣報稅試算 2009 版,可供驗證

檔案依然在官網下載區提供下載
http://code.google.com/p/zhpy/downloads/list

2008年12月15日 星期一

用周蟒建立銀行帳戶類別

我們以建立一個銀行帳戶模型為例,來學習寫作周蟒的類別與函式:

類別 帳戶(物件):
定義 __初始化__(金額):
餘額 = 金額

定義 領錢(金額):
餘額 = 餘額 - 金額

定義 存錢(金額):
領錢(-金額)

定義 轉帳(來源帳戶, 目的帳戶, 金額):
來源帳戶.領錢(金額)
目的帳戶.存錢(金額)

主程式:
撲滿 = 帳戶(2000)
錢包 = 帳戶(0)
轉帳(撲滿, 錢包, 50)
印出 撲滿.餘額
印出 錢包.餘額

程式本身就自我解釋地很好了。

輸出結果為:

1950
50

(例子取自 美麗程式)

2008年11月12日 星期三

周蟒上做測試

ZoomQuiet 在 python-cn group 上分享了一篇 TDD实践之实用主义,建議周蟒在教學之外,也和 unittest 作結合。

事實上早已經有在周蟒專案中使用到 unittest 的例子

簡短的範例如:


定義 範例(資料):
返回 資料

# doctest
定義 測試_資料():
申明 範例("巧虎") == "巧虎"


要測試時,先將程式碼轉成 python
$ zhpy -p


再輸入

$ nosetests
.
-------
OK


即完成自動測試。

2008年9月11日 星期四

周蟒 1.7.1 發佈

周蟒 1.7.1 (代號 太陽) 已發佈。可前往網站下載, 或使用
easy_install -U zhpy
命令來更新。

這是一個維護性質的更新。

上一個版本(1.7) 在 官方網站pypi 下載次數總合,
首度超過 500 份。

2008年8月22日 星期五

學習編程的寓言

新手在程式莊園外徘徊。

門房跟新手說:
「你要先買一本導覽手冊,我才準許你進來」。

新手遞出了金幣,門房交給新手一本程式語言導覽手冊。


新手在程式殿堂外徘徊。

門口的警衛跟新手說:
「你要能使用英語與其他人溝通,我才准許你進來」。

新手學懂了英語,門口的警衛打開了門。

程式的殿堂裡面,果然不出所料,

已經擠滿了外國人。

2008年8月12日 星期二

周蟒近期動態 (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 的網頁介面中輸入周蟒程式碼。