|
AboutZhpy
關於周蟒 (zhpy)
關於周蟒周蟒 (zhpy) 是一種適合用於教學,並且簡單易學、功能強大的中文 Python 程式語言。它具有高效率的高階資料結構、簡單而有效的物件導向程式設計方式,並讓你可以使用中文語句 (繁體或簡體)來編寫程式。 你可以將周蟒視為中文的 Python 程式語言。馬上照著 咬一口周蟒/Python語言 一書或是周蟒 快速語法參考手冊 來學習。你也可以直接來 安裝周蟒。 周蟒是什麼?
特點
周蟒背後的哲學有三:
程式語言再怎麼修改得接近自然語言, 都仍然具有程式語言的邏輯與規則, 周蟒語言的目的並不是接近中文自然語言,而是創造一個實用的中文教學程式語言。 以學習後不會造成轉換到英文程式語言(python..) 時的額外困擾為優先指標,使用方便合理的語句(中文詞彙與科學計算符號)描述程式內容。 想更了解周蟒的獨特之處,請參考 周蟒的哲學與程式風格。 PS: Python 書籍譯者可以從周蟒專案找到 Python 關鍵詞的 繁, 簡中文關鍵詞對應表。 周蟒專案所維護的所有翻譯關鍵詞,與以中文書寫的程式範例,都是可實際執行的。 最簡單的例子印出 '哈囉,世界' 這就是中文的 Hello World,是不是看起來很有親切感? 這句和以下的 Python 語句等價 print '哈囉,世界' 在這個基礎上,加入輸入功能也很簡單: # 檔名: inout.twpy
姓名 = 輸入("請輸入姓名: ")
印出 ">歡迎,", 姓名執行 $zhpy inout.py 請輸入姓名: gasolin >歡迎, gasolin 這範例和以下的 Python 範例等價 # file: inout.py
name = raw_input("請輸入姓名: ")
print ">歡迎,", name 定義函式與類別時也可以用中文。 #!/usr/bin/env zhpy
# 檔名: function1.py
定義 說哈囉():
印出 '哈囉, 世界!' # 函式主體
說哈囉() # 呼叫函式想多了解一點周蟒和 Python,可以看 咬一口周蟒/Python語言。 周蟒知識+有曰:用中文寫程式會不會反而是給小孩多一層學習障礙 ? 以後要學「真正」的寫程式時更是一頭霧水 ? 答曰: 透過周蟒,你所學習使用的是「真正」的 Python 程式語言, 一種連 Google 公司也廣為使用的程式語言。 透過周蟒,你可以在 Python 語言里使用繁簡中文的關鍵字, 參數, 變數。 同時所有 Python 程式語言的英文關鍵字照樣可用,所以也能透過周蟒搭配著中英文對照學習。 用中文寫程式,降低學習程式的門檻是小孩學習時的助力而不是障礙。 有曰:為什麼中文編程要選用 Python 程式語言,這種語言有什麼優點? 答曰: python 程式語言關鍵字 (keyword) 很少,程式清晰易讀, 是最接近自然邏輯表達方式(虛擬碼)的程式語言。 另外 Python 程式語言也早已預先安裝在各作業系統平台中 (除了 Windows 沒預裝,不過另有安裝檔下載), Python 程式語言中也包含了許多常用的模組庫,相當易於使用。 周蟒亦能容易地安裝在 python 上。 有曰: python 語言到底能用在那方面? 答曰: Python 語言和 c 語言, Java 語言一樣是通用的程式語言,舉凡桌面程式,web程式,服務器腳本,使用者界面,資料處理,資料庫,科學計算,圖像處理,遊戲.....等,網路上也可找到各種 Python 語言的應用。 有曰: 周蟒能像 python 語言一樣用在各方面嗎? 答曰: 周蟒是全功能的 python 語言,程式碼可轉換成 python 語言。 因此周蟒能像 python 語言一樣用在各方面。 有曰: 周蟒是架構在 Python 上,性能會不會受到影響? 答曰: 在一般教學上,周蟒效能是足夠的。 需要較高效能時,可以透過 'zhpy -p' 命令將周蟒程式轉換成 python 程式直接執行 .py 檔。 周蟒程式中也可以使用任何 python 程式的加速方式 (如 psyco)。 有曰: 漢語太複雜了,可能產生歧異。 答曰: 周蟒並不是漢語,而是使用中文作為標識符號的中文程式語言。 周蟒透過 [CodingStyle 規範的語法與編程風格] 來簡化並制約漢語的歧異性。 也可以說,周蟒與 Python 相同,是具有一致的表達方式 (There should be one obvious way to do it) 的語言。 周蟒的歷史在 2006 年底(12/22),gasolin 在 python-cn group 上發表了一篇 "關於中文編程"(1) 的主題,引發了一波是否需要中文編程語言的討論, 並引出了 HYRY 的中文字串替代腳本。 HYRY 的原始版中文字串代換腳本檔案相當小,使用 utf-8 編碼,依靠外掛 ini 字典檔來轉換中文字, 並且提供了部份未規範的簡體中文關鍵詞,可以算是周蟒的原型。 此後中文編程並沒有立即的進展。 直到隔年(2007) 8 月, gasolin 在吸收他前幾個參與的開放原始碼專案的經驗(主要是 TurboGears )後,以 HYRY 的中文字串代換腳本為概念中心,將原本簡單的中文字串代換腳本發展成完整的中文編程語言工具,並於 2007/8/9 發佈了完整支援繁簡中文編程的第一個版本 zhpy 0.2 版 (gasolin 將原本 HYRY 的腳本視為 0.1 版)。 0.2 版的特色是可以直接使用 python 的 easy_install 命令線上安裝,簡化了安裝困難度; 並加入內建的繁簡關鍵詞對應字典, 提供中文編程統一的標準關鍵詞參照。 接著三個月間, zhpy 以幾乎每4天一個新版本的速度發佈新版,每個釋出版本都提供更多與 Python 語言相容的中文編程功能。在這過程中為了容易稱呼,將 zhpy 的中文名稱定名為「周蟒」。 周蟒在 0.5 版後陸續加入了一些工具。讓周蟒中文程式可以直接轉換純 Python 程式碼,以應用在一般的 python 程式中。 在 2007/10/2 ,周蟒發佈了 1.0 版本,提供 API 文件、完整的覆蓋測試、中文腳本、模組中文化插件。 接著發佈的1.1版,則更進一步支援 Python 程式轉周蟒程式,使得"Python程式<->周蟒程式"雙向轉換變得可能。使用者隨時能與 Python 英文編程環境、範例橋接,得以安心地先以中文學習編程。 待續.. 周蟒的名稱由來周蟒最初發佈時只有一個英文名稱 'zhpy'。 zhpy 的名稱由來是周蟒的核心使用繁簡中文 unicode 編碼,而繁簡中文 unicode 編碼的代號是 'zh_tw' 跟 'zh_cn'。同時 zhpy 是基於 python 的中文程式語言,因此將代表 unicode 中文編碼的'zh'與代表 python 的'py'結合,取名為 zhpy。 之後為了讓 zhpy 中文編程語言有個在地的中文名字, gasolin 為 zhpy 取了個中文名字叫「周蟒」。取其音似,並有別於已不再釋出新版本的中蟒。同時決定了版本代號命名規則:每個主幹版本發佈的代號(code name)依中國朝代區分。而分支版本則是 gasolin 依個人喜好,選擇漫畫 "jojo 冒險野郎"(作者 荒木飛旅彥)中的'替身'名稱作為分支版本代號。 "zhpy" 該怎發音?zhpy發音: zhpy = z + h + py = z (無聲) py = zippy zippy 有「敏捷的;活潑的」意思。 也可以照字節發音成 Z. H. π / Z. H. pi 周蟒不只是初學者學習程式語言的工具"如果一種鳥類,走起來像鴨子,叫起來像鴨子,那我就可以把它當作一隻鴨子" 周蟒語言走起來像 Python, 叫起來像 Python, 因此你可以把它視作 Python 語言。 周蟒可以直接嵌入 python 程式中, 也能讓作業系統裡可使用周蟒中文腳本。 zhpy 的貢獻
zhpy 的中文關鍵詞支援
周蟒語言適用範圍使用者: 初學者/教學者 用途: 中文系統腳本/教學 平台: Windows/Mac/Linux 周蟒的使用對象是電腦語言的初學者、對寫程式概念不了解的人以及尚未打算以程式設計師為職業的人。能用中文來學習並完成簡單的程式是一件很棒的事。 設計思路周蟒主要架構圖 周蟒與 Python 關係示意圖 以 Python 語言為核心運行。 convertor 使用 pyparsing 模組來查找取代中文關鍵字、類別名稱、定義名稱、變量、參數,將之轉換成英文 source code 後,透過 Python 來執行。 雜談也許你會認為英文是電腦的標准語言, 要學電腦就要學英文, 因此不必為了那些又想學寫程式但又不想學英文的懶鬼操心。
然而學英文是要的,但最好別從電腦程式中來學, 因為編程語言和英文自然語言很不一樣。
-- Glace, 中蟒的作者如果學程式前不用先學會英文, 是否能拉低孩子們平均學習程式年齡? 我們知道編程是相當有用的技術, 透過學習編程也可以增加邏輯跟組織能力, 補習班廣告總是說: 要讓孩子贏在起跑點上, 外國人可以小小年紀就開始學編程, 為什麼中國/台灣人不行? 因為編程/寫程式是有門檻的. 要學習編程/寫程式首先要具備一些相關能力:
基本英文能力(1) 這條鍵仍限制了以英語外語言為母語的人種在初學編程上的門檻. 即使一些開放平台如 Python 語言已提供了簡潔的程式語法(2), 免費編程工具(3). 對于英文基礎還不好的入門者來說, 如果能以中文進行學習可以專注于程式的概念, 常用的運算方法, 程式的邏輯等內涵, 為之後的學習打下基礎。 就算以後再也不碰電腦程式, 起碼也學會了使用電腦來解決一些問題的思考方法, 而不是使用常用的程式語言卻只學了一堆語法等莫名其妙的東西。 |
Sign in to add a comment
這真是個偉大的發明 對人類貢獻的程度不輸給火藥
好东西