Time of Update: 2016-06-06
一、樹的定義樹形結構是一類重要的非線性結構。樹形結構是結點之間有分支,並具有層次關係的結構。它非常類似於自然界中的樹。樹的遞迴定義:樹(Tree)是n(n≥0)個結點的有限集T,T為空白時稱為空白樹,否則它滿足如下兩個條件:(1)有且僅有一個特定的稱為根(Root)的結點;(2)其餘的結點可分為m(m≥0)個互不相交的子集Tl,T2,…,Tm,其中每個子集本身又是一棵樹,並稱其為根的子樹(Subree)。二、二叉樹的定義二叉樹是由n(n≥0)個結點組成的有限集合、每個結點最多有兩個子樹的有序樹。
Time of Update: 2016-06-06
代碼如下:import zipfileimport StringIOclass InMemoryZip(object): def __init__(self): # Create the in-memory file-like object self.in_memory_zip = StringIO.StringIO() def append(self, filename_in_zip, file_contents): '''Appends
Time of Update: 2016-06-06
一、擷取二叉樹的深度就是二叉樹最後的層次,如:實現代碼: 代碼如下:def getheight(self): ''' 擷取二叉樹深度 ''' return self.__get_tree_height(self.root) def __get_tree_height(self, root): if root is 0: return 0 if root.left is 0 and root.right is 0:
Time of Update: 2016-06-06
最近好多分享這個問題的代碼,題目說的是用物件導向或者函數式編程,下面是PYTHON的實現樣本 代碼如下:#!/usr/bin/python#encoding:utf8'''The Game of "FizzBuzzWhizz"author : wang.jiankui89@gmail.commobile : 130-2199-5152'''import sysclass teacher: def __init__(self, student_num):
Time of Update: 2016-06-06
如果要寫一個程式,讓x1為1,x2為2,然後直到x100為100,你會怎麼做?在C這種靜態語言裡,變數名這個標識符實際上會被編譯器直接翻譯成記憶體位址,所以除了手動設定每個變數的值以外,沒辦法做到這點。而Python這種動態語言則是可以做到的。最容易想到的自然是eval,但是實際上根本不需要這種危險的東西,因為Python的變數名就是一個字典的key而已。要擷取這個字典,直接用locals和globals函數即可。因此這個程式可以這樣實現: 代碼如下:>>> names = locals()>>
Time of Update: 2016-06-06
拉勾網面試題1. 你首先說出三個不同的特殊數,要求必須是個位元,比如3、5、7。2. 讓所有學生拍成一隊,然後按順序報數。3. 學生報數時,如果所報數字是第一個特殊數(3)的倍數,那麼不能說該數字,而要說Fizz;如果所報數字是第二個特殊數(5)的倍數,那麼要說Buzz;如果所報數字是第三個特殊數(7)的倍數,那麼要說Whizz。4. 學生報數時,如果所報數字同時是兩個特殊數的倍數情況下,也要特殊處理,比如第一個特殊數和第二個特殊數的倍數,那麼不能說該數字,而是要說FizzBuzz, 以此類推。
Time of Update: 2016-06-06
在HeadFirstPython網站中下載所有檔案,解壓後以chapter 3中的“sketch.txt”為例: 建立IDLE會話,首先匯入os模組,並將工作目錄卻換到包含檔案“sketch.txt”的檔案夾,如C:\\Python33\\HeadFirstPython\\chapter3 代碼如下:>>> import os>>> os.getcwd() #查看當前工作目錄'C:\\Python33'>>>
Time of Update: 2016-06-06
首先想說的是它的安全性,這方面確實能讓我感受到它的良苦用心。這主要可以分為兩點:一、防範跨站偽造請求(Cross-site request forgery,簡稱 CSRF 或 XSRF)CSRF 的意思簡單來說就是,攻擊者偽造真實使用者來發送請求。舉例來說,假設某個銀行網站有這樣的 URL:http://bank.example.com/withdraw?amount=1000000&for=Eve當這個銀行網站的使用者訪問該 URL 時,就會給 Eve
Time of Update: 2016-06-06
range 函數說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,產生一個序列。range樣本: 代碼如下:>>> range(5)[0, 1, 2, 3, 4]>>> range(1,5)[1, 2, 3, 4]>>> range(0,6,2)[0, 2, 4]xrange 函數說明:用法與range完全相同,所不同的是產生的不是一個數組,而是一個產生器。xrange樣本: 代碼如下:>>>
Time of Update: 2016-06-06
python產生指定尺寸的縮圖 代碼如下:def MakeThumb(path, sizes=(75, 32, 16)): """ 縮圖產生程式 by Neil Chen sizes 參數傳遞要產生的尺寸,可以產生多種尺寸 """ base, ext = os.path.splitext(path) try: im = Image.open(path) except IOError: return mode =
Time of Update: 2016-06-06
模組層級函數logging.getLogger([name]):返回一個logger對象,如果沒有指定名字將返回root loggerlogging.debug()、logging.info()、logging.warning()、logging.error()、logging.critical():設定root logger的記錄層級logging.basicConfig():用預設Formatter為日誌系統建立一個StreamHandler,設定基礎配置並加到root logger中樣本:
Time of Update: 2016-06-06
簡單的‘Hello World!'Python命令列假設你已經安裝好了Python, 那麼在Linux命令列輸入: 代碼如下:$python將直接進入python。然後在命令列提示符>>>後面輸入: 代碼如下:>>>print('Hello World!')可以看到,隨後在螢幕上輸出: 代碼如下:Hello World!print是一個常用函數,其功能就是輸出括弧中得字串。(在Python 2.x中,print還可以是一個關鍵字,可寫成print 'Hello
Time of Update: 2016-06-06
代碼如下:def getRemoteFileSize(url, proxy=None): """ 通過content-length頭擷取遠程檔案大小 url - 目標檔案URL proxy - 代理 """ opener = urllib2.build_opener() if proxy: if url.lower().startswith('https://'):
Time of Update: 2016-06-06
要求:分別以james,julie,mikey,sarah四個學生的名字建立文字檔,分別儲存各自的成績,時間格式都精確為分秒,時間越短成績越好,分別輸出每個學生的無重複的前三個最好成績,且分秒的分隔字元要統一為“.”資料準備:分別建立四個文字檔 james.txt 2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22 julie.txt 2.59,2.11,2:11,2:23,3-10,
Time of Update: 2016-06-06
簡單的資料類型以及賦值變數不需要聲明Python的變數不需要聲明,你可以直接輸入: 代碼如下:>>>a = 10那麼你的記憶體裡就有了一個變數a, 它的值是10,它的類型是integer (整數)。 在此之前你不需要做什麼特別的聲明,而資料類型是Python自動決定的。 代碼如下:>>>print a>>>print type(a)那麼會有如下輸出 代碼如下:10這裡,我們學到一個內建函數type(),
Time of Update: 2016-06-06
Splinter 快速介紹官方網站:http://splinter.cobrateam.info/官方介紹:Splinter is an open source tool for testingweb applications using Python. It lets you automate browser actions, such asvisiting URLs and interacting with their
Time of Update: 2016-06-06
之前用Python 2.7版本的httplib做介面測試時,運行代碼都是正常的,最近開始用Python 3.3之後,再去看以前的代碼,發現import httplib出現錯誤:Unresolved import :httplib,運行代碼時也報錯:ImportError: No module named 'httplib'尋找各種資料發現原來Python 2.x中的"httplib"模組在Python 3.x中變成了"http.client",就怪之前只瞭解了兩個版本區別是print語句輸出在3
Time of Update: 2016-06-06
不得不說python的上手非常簡單。在網上找了一下,大都是python2的文章,於是隨手寫了個python3的。代碼非常簡單就不解釋了,直接貼代碼。 代碼如下:#test rdpimport urllib.requestimport re#登入用的帳戶資訊data={}data['fromUrl']=''data['fromUrlTemp']=''data['loginId']='12345'data['password']='12345'user_agent='Mozilla/4.0
Time of Update: 2016-06-06
Python的運算子和其他語言類似(我們暫時只瞭解這些運算子的基本用法,方便我們展開後面的內容,進階應用程式暫時不介紹)數學運算 代碼如下:>>>print 1+9 # 加法>>>print 1.3-4 # 減法>>>print 3*5 # 乘法>>>print 4.5/1.5 # 除法>>>print 3**2 # 乘方 >>>print 10%3 # 求餘數判斷判斷是真還是假,返回True/False 代碼如下:>>
Time of Update: 2016-06-06
工作中,經常會有用python訪問各種資料庫的需求,比如從oracle讀點設定檔或者往mysql寫點結果資訊之類的。這裡列一下可能用到的各個模組。sqlite3: 內建模組用sqlite,有時候確實很方便,我覺得它確實做到了宣稱的“零配置”。python自2.5版以來,就內建了對sqlite3的支援,使用也非常簡單,按照文檔上來: 代碼如下:#開啟db檔案,獲得串連conn = sqlite3.connect('資料檔案名')#獲得遊標c =