python 三分類的啞編碼_運維架構師-Python 自動化運維開發-007
技術標籤:python 三分類的啞編碼
*運維架構師-Python 自動化運維開發-007
進階用法
1. 程式碼執行時間分析
命令:%time
、%timeit
,如下:
2. IPython HTML Notebook
HTML Notebook是在瀏覽器中使用的互動式環境,現在最新版本又叫做Jupyter Notebook,功能很強大,完全是一個B/S模式的IDE,體驗非常棒。可以用以下命令開啟:
- 安裝notebook:
pip install notebook
- 在命令列中開啟notebook:
ipython notebook
(或者:jupyter notebook
- 出現一個帶token的url,把url複製到瀏覽器中,即出現如下頁面:
- 點選右上角的
New
—>
python 2
即可開啟互動式環境:
- 在輸入行中輸入
%pylab inline
命令並執行(Shift + Enter快捷鍵),即可無縫整合matplotlib的繪圖功能到頁面中,如圖:
3. IPython個性化配置
配置檔案在如下目錄: Unix:~/.config/ipython/
Windows:%HOME%/.ipython/
根據配置檔案中的註釋,即可修改相應的配置。
補充內容
一,我們操作程式碼的方式 終端 檔案 終端 字串需要用引號
檔案 檔名以.py結尾 直譯器申明 終端執行檔案
輸入命令的執行流程 屬於程式碼-->直譯器--->語法詞法分析
在 /root 目錄下建立 hello.py 檔案,內容如下:
`print` `"hello,world"`
執行 hello.py 檔案,即: python /root/hello.py
python內部執行過程如下:
二、直譯器
上一步中執行 python /home/dev/hello.py 時,明確的指出 hello.py 指令碼由 python 直譯器來執行。
如果想要類似於執行shell指令碼一樣執行python指令碼,例: ./hello.py
,那麼就需要在 hello.py 檔案的頭部指定直譯器,如下:
`#!/usr/bin/env python`` ` `print` `"hello,world"`
如此一來,執行: ./hello.py
即可。
ps:執行前需給予 hello.py 執行許可權,chmod 755 hello.py
#!/usr/bin/env python
print "hello,世界"
三、內容編碼
python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill)
ASCII(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。
顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字元和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。Unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,注:此處說的的是最少2個位元組,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存...
所以,python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill),如果是如下程式碼的話:
報錯:ascii碼無法表示中文
四、註釋
當行注視:# 被註釋內容
多行註釋:""" 被註釋內容 """
五、執行指令碼傳入引數
Python有大量的模組,從而使得開發Python程式非常簡潔。類庫有包括三中:
- Python內部提供的模組
- 業內開源的模組
- 程式設計師自己開發的模組
Python內部提供一個 sys 的模組,其中的 sys.argv 用來捕獲執行執行python指令碼時傳入的引數
`#!/usr/bin/env python``# -*- coding: utf-8 -*-`` ` `import` `sys`` ` `print` `sys.argv`
六、 pyc 檔案
執行Python程式碼時,如果匯入了其他的 .py 檔案,那麼,執行過程中會自動生成一個與其同名的 .pyc 檔案,該檔案就是Python直譯器編譯之後產生的位元組碼。
ps:程式碼經過編譯可以產生位元組碼;位元組碼通過反編譯也可以得到程式碼。
八、輸入
`#!/usr/bin/env python``# -*- coding: utf-8 -*-`` ` `# 將使用者輸入的內容賦值給 name 變數``name ``=` `raw_input``(``"請輸入使用者名稱:"``)`` ` `# 列印輸入的內容``print` `name`
輸入密碼時,如果想要不可見,需要利用getpass 模組中的 getpass方法,即:
`#!/usr/bin/env python``# -*- coding: utf-8 -*-`` ` `import` `getpass`` ` `# 將使用者輸入的內容賦值給 name 變數``pwd ``=` `getpass.getpass(``"請輸入密碼:"``)`` ` `# 列印輸入的內容``print` `pwd`