Python標準庫包含兩個測試工具。doctest:一個簡單的模塊,為檢查文檔而設計,但也適合用來編寫單元測試。unittest:一個通用的測試框架。一、使用doctest進行單元測試創建文件mymath.py,內容defsquare(x):'''計算平方并返回結果(下面是單元測試的格式)>>>square(2)>>>square(3)'''returnx*xif__name__=='__main__':importdoctest,mymathdoctes
系統 2019-09-27 17:54:39 1736
模式參數的說明:r:以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。r+:打開一個文件用于讀寫。文件指針將會放在文件的開頭。w:打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。w+:打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。a:打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。
系統 2019-09-27 17:52:46 1736
在上一篇文章中,我們講了如何在linux上用python寫一個守護進程。主要原理是利用linux的fork函數來創建一個進程,然后退出父進程運行,生成的子進程就會成為一個守護進程。細心觀察的可能會發現,這個守護進程的運行身份是執行這個程序的用戶,如果把這個守護程序加入到系統的服務項,那么這個守護程序的執行身份應該是root。一個情況出現了,root的權限比較大,如果通過這個root身份的守護程序來進行操作,危險性是比較大的。一種好的辦法是生成一個身份為ro
系統 2019-09-27 17:52:32 1736
問題1:需要得到一個類似{“demo”:{“key”:”value”}}這樣格式的字典dic。dic=dict()dic_temp=dict()dic_temp={"key":"value"}dic["demo"]=dic_temp問題2:創建一個多值映射字典.。d={}forkey,valueinpairs:ifkeynotind:d[key]=[]d[key].append(value)問題3:需要得到一個類似[{“id”:1,“text”:“Root
系統 2019-09-27 17:48:04 1736
PyHook是一個基于Python的“鉤子”庫,主要用于監聽當前電腦上鼠標和鍵盤的事件。這個庫依賴于另一個Python庫PyWin32,如同名字所顯示的,PyWin32只能運行在Windows平臺,所以PyHook也只能運行在Windows平臺。關于PyHook的使用,在它的官方主頁上就有一個簡單的教程,大體上來說,可以這樣使用#-*-coding:utf-8-*-#3importpythoncom4importpyHook5defonMouseEvent
系統 2019-09-27 17:47:22 1736
先使用先序的方法建立一棵二叉樹,然后分別使用遞歸與非遞歸的方法實現前序、中序、后序遍歷二叉樹,并使用了兩種方法來進行層次遍歷二叉樹,一種方法就是使用STL中的queue,另外一種方法就是定義了一個數組隊列,分別使用了front和rear兩個數組的下標來表示入隊與出隊,還有兩個操作就是求二叉樹的深度、結點數。。。#include"iostream"#include"queue"#include"stack"usingnamespacestd;//二叉樹結點的
系統 2019-08-29 22:43:14 1736
python內部自帶大整數運算能力,整數運算不會溢出,只要內存足夠,就oK下面的例子演示了兩個32位整數加法的情況(通過位運算實現),為了模擬溢出的效果,必須人工的進行位運算,~運算符除了求反,還是二進制的補運算符,運算過后的二進制數字按照補碼解釋,例如~(00111100)=(11000011)=-61defgetSum(a,b):""":typea:int:typeb:int:rtype:int"""MAX=0X7fffffffMIN=0X800000
系統 2019-09-27 17:54:25 1735
用python和numpy處理數據次數比較多,寫了幾個小函數,可以方便地讀寫數據:#-*-coding:utf-8-*-#----------------------------------------------------------------------#FileName:gettxtdata.py#功能:讀取字符串和文件中的數值數據(浮點數)#主要提供類似matlab中的dlmread和dlmwrite函數#同時提供loadtxtdata和sav
系統 2019-09-27 17:47:34 1735
python是支持多線程的,主要是通過thread和threading這兩個模塊來實現的。thread模塊是比較底層的模塊,threading模塊是對thread做了一些包裝的,可以更加方便的使用。雖然python的多線程受GIL限制,并不是真正的多線程,但是對于I/O密集型計算還是能明顯提高效率,比如說爬蟲。下面用一個實例來驗證多線程的效率。代碼只涉及頁面獲取,并沒有解析出來。#-*-coding:utf-8-*-importurllib2,timeim
系統 2019-09-27 17:37:56 1735
作者:TedPattison您可能已經對事件進行編程若干年了,但是遷移到.NETFramework仍然需要您重新檢查事件的內部工作,因為.NETFramework中的事件位于委托的頂層。對委托的了解越多,對事件進行編程時所具有的駕馭能力越強。開始使用公共語言運行庫(CLR)的某個事件驅動框架(例如Windows?Forms或ASP.NET)時,理解事件在較低的級別如何工作至關重要。本月我的目標是使您理解事件在較低的級別如何工作。什么是事件?事件是一種形式化
系統 2019-08-29 23:43:07 1735