Time of Update: 2017-01-19
問題是在Python中進行迴圈的時候產生的,熟悉Python的都知道,它沒有類似其它語言中的for迴圈, 只能通過for in的方式進行迴圈遍曆。最典型的應用就是通過range函數產生一個列表,然後用for in進行操作,如下:複製代碼 代碼如下:#!/usr/bin/env pythonfor i in range(10): print i代碼的意義很好理解,range會產生一個列表,用for in最這個列表進行遍曆,就有和類似for(i = 0;i<
Time of Update: 2017-01-19
With語句是什嗎?有一些任務,可能事先需要設定,事後做清理工作。對於這種情境,Python的with語句提供了一種非常方便的處理方式。一個很好的例子是檔案處理,你需要擷取一個檔案控制代碼,從檔案中讀取資料,然後關閉檔案控制代碼。如果不用with語句,代碼如下:複製代碼 代碼如下:file = open("/tmp/foo.txt")data =
Time of Update: 2017-01-19
最近需要對節點到來源站點自己做個監控,簡單的ping可以檢測到一些東西,但是http請求的檢查也要進行,於是就研究了下pycurl。pycurl是個用c語言實現的python 庫,雖然據說不是那麼pythonic,但是卻很高效,它支援的協議居多:supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP
Time of Update: 2017-01-19
常見列表對象操作方法:list.append(x)把一個元素添加到鏈表的結尾,相當於 a[len(a):] = [x] 。list.extend(L)將一個給定列表中的所有元素都添加到另一個列表中,相當於 a[len(a):] = L 。list.insert(i, x)在指定位置插入一個元素。第一個參數是準備插入到其前面的那個元素的索引,例如 a.insert(0, x) 會插入到整個鏈表之前,而 a.insert(len(a), x) 相當於 a.append(x)
Time of Update: 2017-01-19
最近學習下python,將從指定目錄中過濾出指定檔案類型的檔案輸出的方法總結一下,供日後查閱複製代碼 代碼如下:#!/usr/bin/env pythonimport globimport osos.chdir(“./”)for file in glob.glob(“*.py”):print fileprint “#######Another One##########”for file in os.listdir(“./”):if file.endswith(“.py”):print
Time of Update: 2017-01-19
1.演算法:(設尋找的數組期間為array[low, high])(1)確定該期間的中間位置K(2)將尋找的值T與array[k]比較。若相等,尋找成功返回此位置;否則確定新的尋找地區,繼續二分尋找。地區確定如下:a.array[k]>T 由數組的有序性可知array[k,k+1,……,high]>T;故新的區間為array[low,……,K-1]b.array[k]<T
Time of Update: 2017-01-19
複製代碼 代碼如下:"""This module contains code fromThink Python by Allen B. Downeyhttp://thinkpython.comCopyright 2012 Allen B. DowneyLicense: GNU GPLv3 http://www.gnu.org/licenses/gpl.html"""import osdef walk(dirname): """Finds the names
Time of Update: 2017-01-19
在python中使用列表的時候大家經常會需要向一個列表中添加一個元素,像下面這兩種使用方法需要注意:複製代碼 代碼如下:t = [1, 2, 3]t1 = t.append([4])t2 = t + [4]以上兩種使用方式是有區別的,我們來看看實際啟動並執行效果:複製代碼 代碼如下:>>> t = [1, 2, 3]>>> t1 = t.append([4])>>> t[1, 2, 3, [4]]>>> t1>>
Time of Update: 2017-01-19
前言:Redhat下安裝Python2.7rhel6.4內建的是2.6, 發現有的機器是python2.4。 到python網站下載原始碼,解壓到Redhat上,然後運行下面的命令:複製代碼 代碼如下:# ./configure --prefix=/usr/local/python27# make# make
Time of Update: 2017-01-19
最近因為想要看漫畫,無奈下載的漫畫是jpg的格式,網上的轉換器還沒一個好用的,於是乎就打算用python自己DIY一下:這裡主要用了reportlab。開始打算隨便寫幾行,結果為若干坑糾結了挺久,於是乎就想想乾脆把代碼寫好點吧。實現了以下的幾項功能:將當前檔案夾下的圖片儲存到一個pdf中,支援選擇pdf大小等如果有需要可以遍曆它下面的所有檔案夾簡單的來說完全滿足我將漫畫轉成pdf格式的需求了。碰到了一些問題,這裡記錄下:一、中文路徑:這個實在是略蛋疼,總之就是盡量都decode一遍。然後注意wi
Time of Update: 2017-01-19
雖然Python被說成是一種解釋型語言,但是實際上,Python來源程式要先經過編譯,然後才能運行。與Java語言類似,Python來源程式編譯之後得到的是位元組碼,交由Python虛擬機器來運行。關於這一點,我們可以這樣來驗證:複製代碼 代碼如下:#!/usr/bin/python print "position1"1_syntax_error_identifierprint "position2"將它儲存為program.py,然後在shell視窗中運行它:複製代碼
Time of Update: 2017-01-19
一般來說,在Python中,類執行個體屬性的訪問規則算是比較直觀的。但是,仍然存在一些不是很直觀的地方,特別是對C++和Java程式員來說,更是如此。在這裡,我們需要明白以下幾個地方:1.Python是一門動態語言,任何實體都可以動態地添加或刪除屬性。2.一個類定義了一個範圍。3.類執行個體也引入了一個範圍,這與相應類定義的範圍不同。4.在類執行個體中尋找屬性的時候,首先在執行個體自己的範圍中尋找,如果沒有找到,則再在類定義的範圍中尋找。5.在對類執行個體屬性進行賦值的時候,實際上會在類執行個體
Time of Update: 2017-01-19
Python是靜態範圍語言,儘管它自身是一個動態語言。也就是說,在Python中變數的範圍是由它在原始碼中的位置決定的,這與C有些相似,但是Python與C在範圍方面的差異還是非常明顯的。接下來會談論Python的範圍規則,在這中間也會說明一下Python與C在範圍方面的不同。在Python 2.0及之前的版本中,Python只支援3種範圍,即局部範圍,全域範圍,內建範圍;在Python 2.2中,Python正式引入了一種新的範圍 --- 嵌套範圍;在Python
Time of Update: 2017-01-19
在Python中,任何類型的對象都可以做真值測試,並且保證返回True或者False。以下幾種值(不論類型)在真值測試中返回False:1.None2.False3.任何類型的數字0,包括0,0.0,0L,0j4.空的序列(sequence)或者映射(mapping)類型對象5.對於使用者自訂類型的對象,如果其類定義了__nonzero__() 或者
Time of Update: 2017-01-19
python語言本身沒有提供const,但實際開發中經常會遇到需要使用const的情形,由於語言本身沒有這種支出,因此需要使用一些技巧來實現這一功能定義const類如下複製代碼 代碼如下:import sysclass Const(object): class ConstError(TypeException): pass def __setattr__(self, key,
Time of Update: 2017-01-19
random 模組中的常用函數複製代碼 代碼如下:random()返回一個位於區間 [0,1] 內的實數;uniform(a, b)返回一個位於區間 [a,b] 內的實數;randint(a, b)返回一個位於區間 [a,b] 內的整數;choice(sequence)返回一個位於 sequence 中的元素,其中,sequence 為一個有序序列,如 list、string 或者 tuple 等類型;randrange([start], stop[, step])等效於
Time of Update: 2017-01-19
Python 是物件導向的語言,所以程式拋出的異常也是類。常見的異常類1.NameError:嘗試訪問一個沒有申明的變數2.ZeroDivisionError:除數為 03.SyntaxError:語法錯誤4.IndexError:索引超出序列範圍5.KeyError:請求一個不存在的字典關鍵字6.IOError:輸入輸出錯誤(比如你要讀的檔案不存在)7.AttributeError:嘗試訪問未知的對象屬性8.TypeError:傳給函數的參數類型不正確,比如給 int
Time of Update: 2017-01-19
set 是一個無序的元素集合,支援並、交、差及對稱差等數學運算, 但由於 set 不記錄元素位置,因此不支援索引、分區等類序列的操作。初始化複製代碼 代碼如下:s0 = set()d0 = {}s1 = {0}s2 = {i % 2 for i in range(10)}s = set('hi')t = set(['h', 'e', 'l', 'l', 'o'])print(s0, s1, s2, s, t, type(d0))運行結果:複製代碼 代碼如下:set() {0} {0, 1} {'
Time of Update: 2017-01-19
Ruby中有一個很方便的Struct類,用來實現結構體。這樣就不用費力的去定義一個完整的類來僅僅用作訪問屬性。複製代碼 代碼如下:class Dog < Struct.new(:name, :age)endfred = Dog.new("fred", 5)printf "name:%s age:%d", fred.name, fred.age##name:fred age:5Python3.4中也可以這麼幹,但寫法很累贅。其中包含self.name = name
Time of Update: 2017-01-19
python語言本身沒有提供const,但實際開發中經常會遇到需要使用const的情形,由於語言本身沒有這種支出,因此需要使用一些技巧來實現這一功能定義const類如下複製代碼 代碼如下:import sysclass Const(object): class ConstError(TypeException): pass def __setattr__(self, key,