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