Time of Update: 2016-06-06
考慮這種情況:如果一個線程遇到鎖嵌套的情況該怎麼辦,這個嵌套是指當我一個線程在擷取臨界資源時,又需要再次擷取。根據這種情況,代碼如下: 代碼如下:''' Created on 2012-9-8 @author: walfred @module: thread.ThreadTest6 ''' import threading import time counter = 0 mutex = threading.Lock() class
Time of Update: 2016-06-06
Python內建的pdb庫,發現用pdb來偵錯工具還是很方便的,當然了,什麼遠端偵錯,多線程之類,pdb是搞不定的。用pdb調試有多種方式可選:1. 命令列啟動目標程式,加上-m參數,這樣調用myscript.py的話斷點就是程式的執行第一行之前 代碼如下:python -m pdb myscript.py2. 在Python互動環境中啟用調試 代碼如下:>>> import pdb>>> import mymodule>>> pdb.run(‘mymodule.test()')3.
Time of Update: 2016-06-06
在Python中解析XML檔案也有Dom和Sax兩種方式,這裡先介紹如何是使用Dom解析XML,這一篇文章是Dom產生XML檔案,下一篇文章再繼續介紹Dom解析XML檔案。在產生XML檔案中,我們主要使用下面的方法來完成。主要方法1、產生XML節點(node) 代碼如下:createElement("node_name")2、給節點添加屬性值(Attribute) 代碼如下:node.setAttribute("att_name", "arr_value")3、節點的標籤值(data)
Time of Update: 2016-06-06
Python這門解釋性語言也有專門的執行緒模式,Python虛擬機器使用GIL(Global Interpreter Lock,全域解譯器鎖)來互斥線程對共用資源的訪問,但暫時無法利用多處理器的優勢。在Python中我們主要是通過thread和 threading這兩個模組來實現的,其中Python的threading模組是對thread做了一些封裝的,可以更加方便的被使用,所以我們使用
Time of Update: 2016-06-06
今天介紹下Psyco模組,Psyco模組可以使你的Python程式啟動並執行像C語言一樣快。都說Python語言易用易學,但效能上跟一些編譯語言(如C語言)比較要差不少,這裡可以用C語言和Python語言各編寫費伯納西數列計算程式,並計算已耗用時間:C語言程式 代碼如下:int fib(int n){ if (n return n; else return fib(n - 1) + fib(n - 2);} int main() { fib(40);
Time of Update: 2016-06-06
本文執行個體講述了python使用datetime模組計算各種時間間隔的方法。分享給大家供大家參考。具體分析如下:python中通過datetime模組可以很方便的計算兩個時間的差,datetime的時間差單位可以是天、小時、秒,甚至是微秒,下面的代碼就示範了datetime模組在計算時間差時的強大功能# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport datetime#datetime一般的時間計算d1 = datetime.datetime(
Time of Update: 2016-06-06
本文執行個體講述了python使用PythonMagick將jpg圖片轉換成ico圖片的方法。分享給大家供大家參考。具體分析如下:這裡使用到了PythonMagick模組,關於PythonMagick模組和ImageMagick的詳細資料請參考:http://www.imagemagick.org/。 下面這段代碼可以講jpg圖片轉換成ico表徵圖格式。# -*- coding: utf-8 -*-import PythonMagickimg = PythonMagick.Image("c:/1
Time of Update: 2016-06-06
本文執行個體講述了python擷取標準北京時間的方法。分享給大家供大家參考。具體分析如下:這段python代碼主要通過www.beijing-time.org的官網上擷取標準的北京時間,如果你的伺服器掛在網上,你可以通過這段代碼定時擷取北京時間,然後更新自己系統的標準時間。import time,httplibdef getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org")
Time of Update: 2016-06-06
本文執行個體講述了python使用Regex分析網頁中的圖片並進行替換的方法。分享給大家供大家參考。具體分析如下:這段程式碼分析網頁中的所有圖片表單,分析後為其前後添加相應的修飾標籤,並添加到圖片的超級連結。 代碼如下:result = value.replace("[ page ]","").replace('
Time of Update: 2016-06-06
本文執行個體講述了python根據開頭和結尾字串擷取中間字串的方法。分享給大家供大家參考。具體分析如下:這裡給定一個字串,指定開頭和結尾的字串,返回中間包夾的字串,比如: content:bitsCN.com startStr: endStr: 返回結果:bitsCN.comdef GetMiddleStr(content,startStr,endStr): startIndex = content.index(startStr) if startIndex>=0:
Time of Update: 2016-06-06
這裡給大家分享的是使用python實現將100以內的質數挑選出來代碼非常簡單,就不多廢話了。"""使用filter將100以內的質數挑選出來""" # coding = utf-8import mathdef func_get_prime(n): return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1)) print func_get_prime(100
Time of Update: 2016-06-06
一心想學習演算法,很少去真正靜下心來去研究,前幾天趁著周末去瞭解了最短路徑的資料,用python寫了一個最短路徑演算法。演算法是基於帶權無向圖去尋找兩個點之間的最短路徑,資料存放區用鄰接矩陣記錄。首先畫出一幅無向圖如下,標出各個節點之間的權值。其中對應索引:A ——> 0B——> 1C——> 2D——>3E——> 4F——> 5G——>
Time of Update: 2016-06-06
本文執行個體講述了python根據出生年份簡單計算生肖的方法。分享給大家供大家參考。具體分析如下:這裡使用python根據出生年份計算生肖,看了代碼會發現原來這麼簡單#計算生肖def ChineseZodiac(year): return u'猴雞狗豬鼠牛虎兔龍蛇馬羊'[year%12]ChineseZodiac(1990)希望本文所述對大家的Python程式設計有所協助。
Time of Update: 2016-06-06
本文將討論Python中底線(_)字元的使用方法。我們將會看到,正如Python中的很多事情,底線的不同用法大多數(並非所有)只是常用慣例而已。單底線(_)通常情況下,會在以下3種情境中使用:1、在解譯器中:在這種情況下,“_”代表互動式解譯器會話中上一條執行的語句的結果。這種用法首先被標準CPython解譯器採用,然後其他類型的解譯器也先後採用。>>> _ Traceback (most recent call last):File "", line 1, in NameError:
Time of Update: 2016-06-06
python2.x中處理中文,是一件頭疼的事情。網上寫這方面的文章,測次不齊,而且都會有點錯誤,所以在這裡打算自己總結一篇文章。我也會在以後學習中,不斷的修改此篇部落格。這裡假設讀者已有與編碼相關的基礎知識,本文不再再次介紹,包括什麼是utf-8,什麼是unicode,它們之間有什麼關係。str與位元組碼首先,我們完全不談unicode。 s = "人生苦短"s是個字串,它本身儲存的就是位元組碼。那麼這個位元組碼是什麼格式的?如果這段代碼是在解譯器上輸入的,那麼這個s的格式就是解譯器的編碼格式,
Time of Update: 2016-06-06
本文執行個體講述了python根據出生日期返回年齡的方法。分享給大家供大家參考。具體實現方法如下:def CalculateAge(self, Date): '''Calculates the age and days until next birthday from the given birth date''' try: Date = Date.split('.') BirthDate = datetime.date(int(Date[0]),
Time of Update: 2016-06-06
本文執行個體講述了python中反射用法。分享給大家供大家參考。具體如下:import sys, types,newdef _get_mod(modulePath): try: aMod = sys.modules[modulePath] if not isinstance(aMod, types.ModuleType): raise KeyError except KeyError: # The last [''] is very important!
Time of Update: 2016-06-06
我將示範微最佳化(micro optimization)如何提升python代碼5%的執行速度。5%!同時也會觸怒任何維護你代碼的人。但實際上,這篇文章只是解釋一下你偶爾會在標準庫或者其他人的代碼中碰到的代碼。我們先看一個標準庫的例子,collections.OrderedDict類: def __setitem__(self, key, value, dict_setitem=dict.__setitem__): if key not in self: root = self.__root
Time of Update: 2016-06-06
最近,Analysis with Programming加入了Planet Python。作為該網站的首批特約部落格,我這裡來分享一下如何通過Python來開始資料分析。具體內容如下: 資料匯入 匯入本地的或者web端的CSV檔案; 資料變換; 資料統計描述; 假設檢驗 單樣本t檢驗; 可視化;
Time of Update: 2016-06-06
這篇文章討論了Python的from import *和from import *,它們怎麼執行以及為什麼使用這種文法(也許)是一個壞主意。從一個模組匯入全部from import * means意味著“我希望能訪問中我有許可權訪問的全部名稱”。例如以下代碼something.py: # something.py public_variable = 42_private_variable = 141 def public_function(): print("I'm a public