平時做數據處理基本離不了日志記錄功能。每次都配置一堆挺煩人,索性封裝個模塊,這里記錄一下,與大家共享。說明本日志模塊目前只有一個方法getLogger,其他配置項通過參數傳遞,包括日志文件名,等級,日志文件劃分方式,日志清除配置,日志格式等。logger.pyimportloggingfromloggingimporthandlers#日志級別字典__level_dict={'critical':logging.CRITICAL,'fatal':loggi
系統 2019-09-27 17:50:32 1626
數據描述每條數據項儲存在列表中,最后一列儲存結果多條數據項形成數據集data=[[d1,d2,d3...dn,result],[d1,d2,d3...dn,result],..[d1,d2,d3...dn,result]]決策樹數據結構classDecisionNode:'''決策樹節點'''def__init__(self,col=-1,value=None,results=None,tb=None,fb=None):'''初始化決策樹節點args:co
系統 2019-09-27 17:50:26 1626
隨機整數:復制代碼代碼如下:>>>importrandom>>>random.randint(0,99)21隨機選取0到100間的偶數:復制代碼代碼如下:>>>importrandom>>>random.randrange(0,101,2)42隨機浮點數:復制代碼代碼如下:>>>importrandom>>>random.random()0.85415370477785668>>>random.uniform(1,10)5.4221167969800881
系統 2019-09-27 17:50:23 1626
python&djangologging小結[TOC]python基本一次配置,多處生效importlogginglogging.basicConfig(format='%(asctime)s%(message)s',datefmt='%m/%d/%Y%I:%M:%S%p')logging.warning('iswhenthiseventwaslogged.')>>>12/12/201011:46:36AMiswhenthiseventwaslogged.
系統 2019-09-27 17:50:19 1626
如下所示:#!/usr/bin/envpython3#-*-coding:utf-8-*-importsqlite3conn=sqlite3.connect('test.db')#創建一個Cursor:cursor=conn.cursor()#查詢記錄:conn=sqlite3.connect('calendar.db')cursor=conn.cursor()#執行查詢語句:cursor.execute('select*fromperpetualCale
系統 2019-09-27 17:50:18 1626
PySnooper在GitHub上自嘲是一個“乞丐版”調試工具(poorman'sdebugger)。一般情況下,在編寫Python代碼時,如果想弄清楚為什么Python代碼沒有按照預期執行、哪些代碼在運行哪些沒在運行、局部變量又是什么,我們會使用包含斷點和觀察模式等功能的調試器,或者直接使用print語句打印出來。但上面的方法都比較麻煩,例如使用調試器需要進行繁瑣的設置,使用print打印也要很仔細。與它們相比,使用PySnooper只需為要調試的函數添
系統 2019-09-27 17:50:04 1626
Python作為一門面對對象的語言,那么肯定也是有多態這個屬性的,這里主要跟C++的多態做一下類比先看下面的代碼這里可以看到,Child,Child2都是Parent的子類,他們分別重寫了父類的print_func函數,因此可以看到下面的結果這是單獨打印每個對象來得到的結果,下面開始看Python的多態這里可以看到,print_who這個函數只是將obj對象的print_func函數調用打印了一下。這里和C++的多態都是區別不大的。但是Python的多態比
系統 2019-09-27 17:49:56 1626
本文實例講述了python讀寫配置文件操作。分享給大家供大家參考,具體如下:在用編譯型語言寫程序的時候,很多時候用到配置文件,作為一個約定的規則,一般用ini文件作為配置文件,當然不是絕對的,也可能是XML等文件。配置文件是配置的參數是在程序啟動,或運行時需要的,作為編譯型語言,幾乎都會用到,但python是動態語言。動態語言的一大特性是解析執行的。所以很多情況下需要配置的參數,通常會被直接寫在腳本里。一個常用的做法,就是單獨用一個文件來作為配置文件,比如
系統 2019-09-27 17:49:52 1626
s與==區別:is用于判斷兩個變量引用對象是否為同一個,==用于判斷引用變量的值是否相等。aisb相當于id(a)==id(b),id()能夠獲取對象的內存地址。如果a=10;b=a;則此時a和b的內存地址一樣的;但當a=[1,2,3];另b=a[:]時,雖然a和b的值一樣,但內存地址不一樣。如果此時定義a=10、b=10,然后再對比aisb會發現返回的結果是True,這是因為在Python中會實現創建一個小型的整形池,范圍為[-5,256],為這些整形開
系統 2019-09-27 17:49:44 1626
8.計數排序8.1算法思想計數排序是一個非基于比較的排序算法。它的優勢在于在對一定范圍內的整數排序時,它的復雜度為Ο(n+k)(其中k是整數的范圍),當o(k)O(nlog(n))的時候其效率反而不如基于比較的排序(基于比較的排序的時間復雜度在理論上的下限是O(nlog(n)),如歸并排序,堆排序)。作為一種線性時間復雜度的排序,計數排序要求輸入的數據必須是有確定范圍
系統 2019-09-27 17:49:42 1626
原題|Left-recursivePEGgrammars作者|GuidovanRossum(Python之父)譯者|豌豆花下貓(“Python貓”公眾號作者)聲明|本翻譯是出于交流學習的目的,基于CCBY-NC-SA4.0授權協議。為便于閱讀,內容略有改動。我曾幾次提及左遞歸是一塊絆腳石,是時候去解決它了。基本的問題在于:使用遞歸下降解析器時,左遞歸會因堆棧溢出而導致程序終止。【這是我的PEG系列的第5部分。其它文章參見這個目錄】假設有如下的語法規則:ex
系統 2019-09-27 17:49:42 1626
代碼示例支持平臺:Centos6.3Python:2.7.14代碼示例:菜單-Python踩坑指南代碼示例1.1踩坑案例長期運行的daemon進程或者socket測試類進程,經常遇到的坑是:IOError:[Errno24]Toomanyopenfiles即進程遇到IO錯誤,無法打開更多的文件.1.2填坑和分析一般從兩個方面入手:1.2.1從程序優化入手檢查文件打開是否遵循了"誰打開誰關閉"原則文件是否存在關閉泄露a.誰打開誰關閉是個普適的原則:只有邏輯設
系統 2019-09-27 17:49:40 1626
原題|Left-recursivePEGgrammars作者|GuidovanRossum(Python之父)譯者|豌豆花下貓(“Python貓”公眾號作者)聲明|本翻譯是出于交流學習的目的,基于CCBY-NC-SA4.0授權協議。為便于閱讀,內容略有改動。我曾幾次提及左遞歸是一塊絆腳石,是時候去解決它了。基本的問題在于:使用遞歸下降解析器時,左遞歸會因堆棧溢出而導致程序終止。【這是我的PEG系列的第5部分。其它文章參見這個目錄】假設有如下的語法規則:ex
系統 2019-09-27 17:49:40 1626
要先導入模塊,才能調用用模塊中定義的函數(才會有該模塊的代碼提示)。import模塊#導入一個模塊import模塊1,模塊2,....#同時導入多個模塊from模塊import部分#導入一部分from模塊import部分1,部分2,部分3....#導入一個模塊的多個部分from模塊import*#導入整個模塊以上的模塊均可換為模塊.子模塊,表示只導入子模塊|從子模塊中導入。導入之后就可以通過模塊名.方法名()調用模塊中的函數了。不管導入一個相同模塊多少次,
系統 2019-09-27 17:49:40 1626
首先我們要明白在python中當字符編碼為:UTF-8時,中文在字符串中的占位為3個字節,其余字符為一個字節下面就直接介紹幾種python中字符串常用的幾種字符串內置函數(本文中牽扯到了模塊與一些之前章節沒講過的相關知識,坑我之后會填的)字符串切片(截取字符串):#字符串切片string[開始位置:結束位置:步長]name="鞏?t鵬"print(name[0:])#從第一個字符截取到最后一個字符print(name[0:2])#從第一個字符截取到第二個字
系統 2019-09-27 17:49:35 1626