Python是一種面向對象的解釋型計算機程序設計語言。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議[2] 。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。
Python類型:
Python采用動態類型系統。在編譯的時候,Python不會檢查對象是否擁有被調用的方法或者屬性,而是直至運行時,才做出檢查。所以操作對象時可能會拋出異常。不過,雖然Python采用動態類型系統,它同時也是強類型的。Python禁止沒有明確定義的操作,比如數字加字符串。
與其它面向對象語言一樣,Python允許程序員定義類型。構造一個對象只需要像函數一樣調用類型即可,比如,對于前面定義的Fish類型,使用Fish()。類型本身也是特殊類型type的對象(type類型本身也是type對象),這種特殊的設計允許對類型進行反射編程。
Python內置豐富的數據類型。與Java、C++相比,這些數據類型有效地減少代碼的長度。下面這個列表簡要地描述了Python內置數據類型(適用于Python 3.x):
除了各種數據類型,Python語言還用類型來表示函數、模塊、類型本身、對象的方法、編譯后的Python代碼、運行時信息等等。因此,Python具備很強的動態性。
Python應用:
系統編程:提供API(Application Programming Interface應用程序編程接口),能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。
圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。
數學處理:NumPy擴展提供大量與許多標準數學庫的接口。
文本處理:python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發。
數據庫編程:程序員可通過遵循Python DB-API(數據庫應用程序編程接口)規范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等數據庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。
網絡編程:提供豐富的模塊支持sockets編程,能方便快速地開發分布式應用程序。很多大規模軟件開發計劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。
Web編程:應用的開發語言,支持最新的XML技術。
多媒體應用:Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。
pymo引擎:PYMO全稱為python memories off,是一款運行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG游戲引擎。因其基于python2.0平臺開發,并且適用于創建秋之回憶(memories off)風格的AVG游戲,故命名為PYMO。
黑客編程:python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感。
Python中的基本運算:
就像你預料的那樣,你能夠直接進行算術操作(你可以在你的所有運算中使用足夠多的括號!),還可以輕松地使用 Python 拼接字符串。
你還可以將運算結果賦給一個變量,然后在屏幕上顯示它。Python 有一個叫做拼接 (concatenation) 的實用功能——給 print 函數提供一串用逗號分隔的變量和/或字符串,它會返回一個由你剛才提供的變量依序構成的句子:
》》》 a = 5
》》》 b = 8
》》》 x = b / a
》》》 x
1.6
》》》 print(b, “divided by”, a, “equals”, x)
注意,你可以將不同類型的變量(數字,字符串,布爾符號等等)混合在一起。當你將一個值賦給一個變量后,你可以隨后更改它的類型,不會有任何問題(因此,Python 被稱為動態類型語言)。
如果你嘗試在靜態類型語言中(如 Java 或 C#)做這件事,它將拋出一個錯誤。
python腳本開機自啟動代碼:
一、開始菜單啟動項實現
用戶必須登錄才可執行。
測試腳本(python代碼):
代碼如下:
import time
fout = open(‘e:\\1.txt’,‘w’)
while True:
tmp = ‘%d-%02d-%02d %02d:%02d:%02d \r\n’ % time.localtime()[0:6]
print tmp
fout.write(tmp)
fout.flush()
time.sleep(5)
1、常規操作
1.1 創建快捷方式;
1.2 將創建的快捷方式放入開始菜單啟動項;
1.3、開機驗證;
2、隱藏命令行窗口啟動
上述操作方法有命令行窗口,有些場合感覺不太實用,我們可以通過以下兩種方式去掉命令行窗口。
2.1 將python腳本的文件擴展名改為“.pyw”
其它操作和上述過程類似,這里不再贅述。
2.2 通過vbs之類的腳本啟動
vbs代碼如下:
Set ws = CreateObject(“Wscript.Shell”)
ws.run “cmd /c E:\test1.py”,vbhide
路徑根據具體情況進行配置,其它的和之前的操作類似,這里不再贅述。
如果不想用快捷方式的話,把腳本直接放入啟動項也可以。
附:
配置賬戶自動登錄
通過開始菜單啟動項來實現的話,必須進行相應保證用戶登錄系統,這里介紹一種賬戶自動登錄的方法。
a、 在運行框中鍵入“Rundll32 netplwiz.dll,UsersRunDll”;
b、 打開用戶賬戶界面,將“要使用本機,用戶必須輸入用戶名和密碼”前面的勾去掉,按”確定“后輸入需要自動登錄的用戶名和密碼;
二、開機腳本
不能用循環,最好配置超時時間。
測試代碼(python):
代碼如下:
import time
fout = open(‘e:\\1.txt’,‘w’)
tmp = ‘%d-%02d-%02d %02d:%02d:%02d \r\n’ % time.localtime()[0:6]
print tmp
fout.write(tmp)
fout.close()
步驟如下:
a、運行中輸入gpedit.msc打開組策略編輯器;
b、選擇“計算機配置”=》“Windows 設置”=》“腳本”=》“啟動”選項;
c、選擇腳本;
d、配置腳本最長等待時間,路徑為“計算機配置”=》“管理模版”=》“系統”=》“腳本”=》“組策略腳本的最長等待時間”;
三、通過一個服務調用該腳本
a、編寫腳本啟動服務serviceStartShell,代碼如下(這里只列出main函數的代碼):
代碼如下:
int main(int argc,char* argv[])
{
Init();
dwThreadID = GetCurrentThreadId();
SERVICE_TABLE_ENTRY st[] =
{
{ szServiceName, (LPSERVICE_MAIN_FUNCTION)ServiceMain },
{ NULL, NULL }
};
//printf(“argc = %d \n”,argc);
if((4 == argc) && 0 == stricmp(argv[3],“/install”) )
{
Install(argv[1],argv[2]);
writeReg(argv[1],argv[2]);
}
else if ((2 == argc) && 0 == stricmp(argv[1], “/uninstall”) )
{
Uninstall();
}
else
{
if (!StartServiceCtrlDispatcher(st))
{
//printf(“Register Service Main Function Error!”);
}
}
return 0;
}
b、服務安裝;
代碼如下:
serviceStartShell.exe C:\Python27\python.exe e:\test1.py /install
c、服務卸載;
代碼如下:
serviceStartShell.exe /uninstall
評論
查看更多