基本介紹
簡介,關於Python,在程式語言中的定位,Python for s60的開發二,開發環境及安裝,python開發環境,手機端編寫python,Python for S60,
簡介
Python for s60是可以在諾基亞塞班S60系統上運行的Python 版本(基於Python 2.2.2)。
安裝此軟體可以使得塞班系統運行Python編寫的程式。
關於Python
雖然Python可能被粗略地分類為“腳本語言”(script language),但實際上一些大規模軟體開發計畫例如Zope、Mnet及BitTorrent,谷歌也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態程式語言,原因是“腳本語言”泛指僅作簡單編程任務的語言,如shell script、JavaScript等只能處理簡單任務的程式語言,並不能與Python相提並論。
此外,由於Python對於C和其他語言的良好支持,很多人還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程式進行集成和封裝。在谷歌內部的很多項目使用C++編寫性能要求極高的部分,然後用Python調用相應的模組。
Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程式,做為 ABC 語言的一種繼承。之所以選中 Python(大蟒蛇的意思)作為程式的名字,是因為他是一個Monty Python的飛行馬戲團的愛好者。
ABC是由Guido參加設計的一種教學語言。就Guido本人看來,ABC 這種語言非常優美和強大,是專門為非專業程式設計師設計的。但是ABC語言並沒有成功,究其原因,Guido 認為是非開放造成的。Guido 決心在 Python 中避免這一錯誤(的確如此,Python 與其它的語言如C、C++和Java結合的非常好)。同時,他還想實現在 ABC 中閃現過但未曾實現的東西。
就這樣,Python在Guido手中誕生了。實際上,第一個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unix shell和C的習慣。
在程式語言中的定位
很多大規模軟體開發計畫例如 Zope,Mnet 及 BitTorrent. Google都在廣泛地使用它。
通常認為,Python是一種解釋性的語言,但是這種說法是不正確的,實際上,Python在執行時,首先會將.py檔案中的原始碼編譯成Python的byte code(位元組碼),然後再由Python Virtual Machine來執行這些編譯好的byte code。這種機制的基本思想跟Java,NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這裡的高級並不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基於C的Python編譯出的位元組碼檔案,通常是.pyc格式。
在實際開發中,python常被暱稱為膠水語言,這不是說他會把你的手指粘住,而是說他能夠很輕鬆的把用其他語言製作的各種模組(尤其是C/C++)輕鬆地聯結在一起。常見的一種套用情形是,使用python快速生成程式的原型(有時甚至是程式的最終界面)進行Python for s60的開發
Python for s60的開發二
開發環境及安裝
開發環境共又三個程式,分別為python for s60、PythonScriptShell和ped。python for s60是程式的運行環境,相當於java的虛擬機,PythonScriptShell為一個shell程式,主要負責人機互動,把用戶輸入的內容傳送給核心執行同時把執行結果反饋給用戶。而ped為python IDE環境(用python語言開發的python集成開發環境,有點繞口呵呵!!)我們以後的python腳本主要在這上面編寫運行。
安裝過程比較簡單,首先運行python for s60,如果安裝完成後沒有發現程式圖示請不要奇怪,因為作為程式運行環境它是不能與人直接互動的,因此也就不會有個圖示讓你來運行。然後安裝PythonScriptShell,最後安裝ped,整個開發環境就安裝完成了。注意:在這裡安裝是有些人會說一定需要把python for s60以及相對應的python應用程式(如ped)安裝到C糟,其實不然,我們只需將python for s60以及相對應的python應用程式安裝到相同的盤符下即可,如python for s60安裝到C糟,python應用程式也需要安裝到C糟,同理也可安裝到E盤(如果提示證書過期請把手機時間前調半年)(如圖1)
向S60 SDK安裝Python for S60 您可以向所有獲支持的SDK版本分別安裝Python模擬器和範例腳本。請選擇下面的安裝器:
Python or60_1_2_for_2ndEd_FP1_SDK.zip – 針對SDK version 2.1的安裝器
Python orS60_1_2_for_2ndEd_FP2_SDK.zip– 針對SDK 2nd Edition, Feature Pack 2的安裝器
PythonForS60_1_2_for_2ndEd_FP3_SDK.zip – 針對SDK 2nd Edition, Feature Pack 3的安裝器
PythonForS60_1_3_17_SDK_3rdEd_selfsigned.zip – 針對SDK 3rd Edition的安裝器
啟動安裝器程式並按照指示操作,安裝器會詢問客戶文檔和工具所安裝的資料夾位置,它和所有SDK版本一樣都在同一個目錄。
python開發環境
先打開python,點選項--runscript,程式內置了幾個demo小程式,可以試著運行一下。運行以後有些windows變成老鳥可能就會發現它僅僅提供了執行腳本的功能,既不能編寫腳本又不能對錯誤的腳本返回錯誤信息。要想真正脫離電腦,用手機來編寫腳本程式,就要用到ped。打開軟體,點選項--file-new--python就創建了一個空白的python腳本檔案,在這裡面就可以編寫腳本程式了。有時候我們可能想測試一句腳本的效果,或者想將一整段腳本一句一句運行(類似於單步執行),我們可以使用python shell模式,打開選項--python shell即可進入python shell模式。基本上編寫腳本就運用到上述內容,未介紹的在腳本編寫過程中有介紹。(注意:對於該環境不是太熟悉的讀者請儘量不要更改settings中的內容,否則可能無法正常執行程式)
(由於在symbian系統中字元編碼比較特殊,有些看著完全相同的字元,可能編碼並不相同,如果含有這種字元的腳本在手機上執行可能會有意想不到的效果,因此安有其他輸入法的用戶一定要把輸入法切換為系統自帶的輸入法,同時對於特殊字元一定在abc狀態下輸入)
手機端編寫python
1、(1)首先我們編寫一句最簡單的hello world腳本:
建立空白python腳本檔案輸入:
print\"hello\"
然後點選項--run,效果如圖2 [attach]1448667[/attach]
注意:在python中判斷是否為一段語句的方法和c語言不同,c語言是同過判斷是否有“;”,而python則是看一句腳本是否換行,如果換行則認 為是兩句,因此python中每句句末是沒有“;”的。
(2)創建一個具有圖形界面的hello world腳本:
import appuifw
appuifw.note(u\"hello\",\"info\")
執行,效果如圖3所示。 [attach]1448668[/attach]
appuifw是symbian提供的一個API函式館,主要包含一些輸入輸出函式,而import appuifw則說明後續腳本中使用到了appuifw庫中的函式, appuifw.note(u\"*****\",\"info\")的效果為彈出一個信息提示視窗,星號為你想輸出的內容。
3、創建一個單輸入區對話框:appuifw.query()
appuifw.query(label,type)
創建文本:
appuifw.query(u\"what is your name\", \"text\")
執行效果如圖4 [attach]1448669[/attach] [attach]1448670[/attach]
數字:appuifw.query(u\"Typing your number:\", \"number\")
日期:appuifw.query(u\"Typing a date:\", \"date\")
時間:appuifw.query(u\"Typing a time:\", \"time\")
密碼: appuifw.query(u\"Typing a code:\", \"code\")
詢問:appuifw.query(u\"Are you ok:\", \"query\")
Python for S60
S60 3rd Edition終端強制實施平台安全。這意味著,所有SISX檔案的安裝都需要經過事先認證。軟體安裝器將檢查SISX包中的套用是否經過認證。有關認證方面的更多信息請參閱“認證與分發”一節。平台安全的基本概念是'capability',這一術語指出正在終端中運行的進程能做什麼。由於標準Python for S60套用與某個本地套用並無差別,它們都運行於某個獨立的執行緒,如果它使用了一些受控的API或通過SISX包發行,就必須經過認證。一個Python獨立套用的功能受限於分配給解釋器DLL的capabilities。“認證與分發”一節中列出了這些capabilities。換句話說,這是使用諾基亞簽名的Python for S60的所有Python套用的上限。如有需要,當然也可以為某些特殊目的以更大的capabilities對Python解釋器DLL進行認證簽名,但這不在本文討論範圍內。作為從終端主選單看到的Python套用,腳本shell也需要經過認證。腳本shell不會讓腳本程式以比自己大的capabilities運行,因而也就不會被諾基亞授予與解釋器DLL同等的capabilities。這並不會影響開發工作,因為開發者可以用開發夥伴證書對腳本shell進行認證。由於需要對解釋器DLL和腳本shell進行分別認證,就需要兩個包('X'表示版本號): PythonForS60-X_X_X_3rded.SIS – 含有解釋器DLL、諾基亞提供的所有本地Python擴展和其他需要的檔案;PythonScriptShell-X_X_X_3rded.SIS – 含有腳本shell套用,需要與上面的包一起運行。