標籤:python
Python的基本特點
一種動態解釋型的程式設計語言
規範的代碼: Python 採用強制縮排的方式使得代碼具有極佳的可讀性。
進階語言特性: 封裝記憶體管理等
可移植性: 程式如果避免使用依賴於系統的特性,那麼無需修改就可以在任何平台上運行
解釋性: 直接從原始碼運行程式,不再需要擔心如何編譯器,使得程式更加易於移植。
物件導向: 支援面向過程的編程也支援物件導向的編程。
可擴充性: 需要保密或者高效的代碼,可以用C或C++編寫,然後在Python程式中使用它們。
可嵌入性: 可以把Python嵌入C/C++程式,從而向你的程式使用者提供指令碼功能。
豐富的庫: 包括Regex、文檔產生、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP 電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形化使用者介面)、Tk和其他與系統有關的操作。 除了標準庫以外,還有許多其他高品質的庫,如wxPython、Twisted和Python映像庫等等。
概括: Python確實是一種十分精彩又強大的語言。它合理地結合了高效能與使得編寫程式簡單有趣的特色。
Python使用C語言開發,但是Python不再有C語言中的指標等複雜的資料類型。
python具有很強的物件導向特性,而且簡化了物件導向的實現。它消除了保護類型、抽象類別、介面等物件導向的元素。
Python僅有31個保留字,而且沒有分號、大括弧、begin、end等標記。
Python 安裝與運行
Python命令列選項
選項 作用-c cmd 在命令列直接執行python代碼。如python -c print "hello world"。-d 指令碼編譯後從解譯器產生調試資訊。同PYTHONDEBUG=1。-E 忽略環境變數。-h 顯示python命令列選項協助資訊。-i 指令碼執行後馬上進入互動命令列模式。同PYTHONINSPECT=1。-O 在執行前對解譯器產生的位元組碼進行最佳化。同 PYTHONOPTIMIZE=1。-OO 在執行前對解譯器產生的位元組碼進行最佳化,並刪除最佳化代碼中的嵌入式文檔字串。-Q arg 除法規則選項,-Qold(default),-Qwarn,-Qwarnall,-Qnew。-S 解譯器不自動匯入site.py模組。-t 當指令碼的tab縮排格式不一致時產生警告。-u 不緩衝stdin、stdout和stderr,預設是緩衝的。同PYTHONUNBUFFERED=1。-v 產生每個模組的資訊。如果兩個-v選項,則產生更詳細的資訊。同PYTHONVERBOSE=x。-V 顯示Python的版本資訊。-W arg 出錯資訊控制。(arg is action:message:category:module:lineno)-x 忽略源檔案的首行。要在多平台上執行指令碼時有用。file 執行file裡的代碼。- 從stdin裡讀取執行代碼。
常用技巧
python -m SimpleHTTPServer [port] # 目前的目錄開啟一個小的檔案伺服器, 預設連接埠8000# 另外,python 3,中是 python -m http.serverpython -m this # python‘s Zenpython -m calendar # 顯示一個日曆python -m antigravity # 這個有意思python -m smtpd -n -c DebuggingServer localhost:20025 # 可以寫一個小指令碼作為“郵件伺服器”與MUA軟體互動python -c "import django" # 這句話用來探測是否能運行成功
環境變數配置
*1. python 安裝之後,預設 windows 下不能直接使用 python 命令。需要配置環境變數。 假設python的安裝路徑為c:\python27,則修改我的電腦->屬性->進階->環境變數->系統變數中的PATH為: (為了在命令列模式下運行Python命令,需要將python.exe所在的目錄附加到PATH這個環境變數中。)
PATH=PATH;c:\python27
上述環境變數設定成功之後,就可以在命令列直接使用python命令。或執行"python *.py"運行python指令碼了。
第三方庫的匯入
如何使Python解譯器能直接import預設安裝路徑以外的第三方模組?為了能 import 預設安裝路徑以外的第三方的模組(如自己寫的模組, 或者遇到第三方庫版本衝突時)系統內容是一個list,可以將自己需要的庫添加進入,例如mysql庫,hive庫等等。有三種方式添加,均驗證通過:1.代碼中添加:
import syssys.pathsys.path.append(path)#sys.path.insert(1, ‘./libs‘) # 這寫法會讓這庫的優先順序更高
這寫法只讓這啟動並執行代碼記憶體中生效,不影響其它程式。2. 使用pth檔案永久添加 使用pth檔案,在 site-packages 檔案中建立 .pth 檔案,將模組的路徑寫進去,一行一個路徑,以下是一個樣本,pth檔案也可以使用注釋: # .pth file for the my project(這行是注釋) E:\DjangoWord E:\DjangoWord\mysite E:\DjangoWord\mysite\polls 這個不失為一個好的方法,但存在管理上的問題,而且不能在不同的python版本中共用,還會影響所有運行中的python程式。3.使用 PYTHONPATH 環境變數 使用 PYTHONPATH 環境變數,在這個環境變數中輸入相關的路徑,不同的路徑之間用逗號(英文的!)分開,如果 PYTHONPATH 變數還不存在,可以建立它! 路徑會自動加入到 sys.path 中,而且可以在不同的python版本中共用,應該是一樣較為方便的方法 linux 設定方法: 命令列 export PYTHONPATH=/usr/lib/python27/site-packages/ 本次對話生效 vi ~/.bash_profile 在最後添加 export PYTHONPATH=/usr/lib/python27/site-packages/ 重新登陸即可生效, 只對登陸使用者生效 vi /etc/profile 在最後添加 export PYTHONPATH=/usr/lib/python27/site-packages/ 重新登陸即可生效, 對所有使用者有效 windows 設定方法: 命令列 SET "PYTHONPATH=C:\Python27\Lib\site-packages" 本次對話生效 “環境變數”,建立一個名為“PYTHONPATH”的變數,指向自己指定的目錄即可整個電腦生效。
python中的檔案類型
1.Python的檔案類型分為3種,即原始碼、位元組代碼和最佳化代碼。這些都可以直接運行,不需要進行編譯或串連。2.原始碼以“.py”為副檔名,由python來負責解釋;3.源檔案經過編譯後產生副檔名為“.pyc”的檔案,即編譯過的位元組檔案。 這種檔案不能使用文字編輯器修改。pyc檔案是和平台無關的,可以在大部分作業系統上運行。 如下語句可以用來產生pyc檔案: import py_compile py_compile.compile(‘hello.py‘)4.經過最佳化的源檔案會以“.pyo”為尾碼,即最佳化代碼。 它也不能直接用文字編輯器修改,如下命令可用來產生pyo檔案: python -O -m py_complie hello.py
位元組編譯的 .pyc 檔案 輸入一個模組相對來說是一個比較費時的事情,所以Python做了一些技巧,以便使輸入模組更加快一些。 一種方法是建立 位元組編譯的檔案,這些檔案以 .pyc 作為副檔名。另外,這些位元組編譯的檔案也是與平台無關的。 當你在下次從別的程式輸入這個模組的時候,.pyc 檔案是十分有用的——它會快得多,因為一部分輸入模組所需的處理已經完成了。 注意:雖說 python 是源碼公開的,但伺服器上可以只保留 .pyc 檔案,而不保留源碼,照樣正常運行。這樣可以保證源碼不被看到。 pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc檔案是不同的,2.5編譯的pyc檔案,2.4版本的 python是無法執行的。 根據python源碼中提供的opcode,可以根據pyc檔案反編譯出 py檔案源碼,2.6之後源碼不提供反編譯,不過可以另外設法做到。
將 py 檔案產生 pyc 檔案:1.直接通過命令來運行,可以看到下面的命令中並沒有用到 compile() 函數, 這是因為 py_compile 模組的 main() 函數中調用了 compile() . python -m py_compile test.py python -O -m py_compile test.py -O 最佳化成位元組碼 -m 表示把後面的模組當成指令碼運行 -OO 表示最佳化的同時刪除文檔字串 如果想看 compile(), compile_dir(), compile_path() 具體每個參數用途, 可以使用 print py_compile.compile().__doc__ 來查看,或者直接開啟 py_compile.py,compileall.py 檔案來看。2.通過寫python代碼來編譯.py檔案,然後運行這個python指令碼即可,運行過程中輸入你要編譯的.py檔案。 import py_compile file=raw_input("Please enter filename: ") py_compile.compile(file)3.如果是在Linux環境下,可以通過寫一個bash指令碼編譯.py。 #! /bin/sh (echo ‘import compileall‘; echo ‘compileall.compile_dir("./")‘) | python 完成上述代碼後用bash命令運行即可。4.禁止 python 在啟動並執行時候自動產生 .pyc 檔案 python2.6 新增了一個特性,只要把環境變數 PYTHONDONTWRITEBYTECODE 設定為 x,就不再會產生 .pyc 檔案了。
本文出自 “營運小子” 部落格,請務必保留此出處http://kaliroot.blog.51cto.com/8763915/1876053
python的筆記(一)