Time of Update: 2018-12-04
文章目錄 (1)傳入一個函數(2)傳入一個可調用的對象(3)繼承Thread類 前言 這兩天為了做一個小項目,研究了一下python的並發編程,所謂並發無非多線程和多進程,最初找到的是threading模組,因為印象中線程“輕量...”,“切換快...”,“可共用進程資源...”等等,但是沒想到這裡水很深,進而找到了更好的替代品multiprocessing模組。下面會講一些使用中的經驗。後面出現的代碼都在ubuntu10.04 +
Time of Update: 2018-12-04
python的egg檔案有點像java中的jar檔案,是一個工程打包檔案,便於安裝部署,僅此一點,給多少pythoner帶來了多少激動。如何製作egg檔案呢?see官方文檔http://peak.telecommunity.com/DevCenter/PythonEggs,到http://pypi.python.org/pypi/setuptools下載setuptools包,然後安裝:python
Time of Update: 2018-12-04
唉~今天為了python中靜態方法和類方法差了一下午啊,最後在官方文檔中糾結了半天,最後終於知道了這兩種函數有什麼區別。唉~怎麼這麼糾結啊~果然對一門語言深入學習是很蛋疼的事情啊,還好暫時不打算深入學習python。
Time of Update: 2018-12-04
自動發送郵件應該算一個常用的需求了,python提供了相應的模組支援,下面看看自動發送郵件的一段代碼: #coding=utf-8 import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationclass BaseMail: def __init__( self,
Time of Update: 2018-12-04
python中的淺拷貝深拷貝的概念和C++裡面的淺拷貝深拷貝是一樣的。所謂淺拷貝就是對引用的拷貝,所謂深拷貝就是對對象的資源的拷貝,邊看例子邊解釋: #1>>> ls1 = [1,2,3,4,5]>>> c_ls1 = ls1>>> c_ls1[-1] = -1>>> ls1[1, 2, 3, 4, -1]>>> c_ls1[1, 2, 3, 4, -1] 上面的例子,複製操作 c_ls1 =
Time of Update: 2018-12-04
GAE玩了有一段時間了,現在突然發現在GAE的python應用中,擷取的時間是UTC時間,但我清楚記得,之前擷取的時間是本地時間啊!!一個應用應該有一個時間參考點的,大多數應用應該是以本地時間為參考點。 python2.5中:>>> import datetime>>> datetime.datetime.now()datetime.datetime(2009, 5, 26, 20, 18, 2, 593000)>>>
Time of Update: 2018-12-04
關於ip地址的排序問題:假如現在有一堆亂序的ip,來源資料:ls1 = ['192.168.1.8','192.168.36.8','192.168.26.8',]排序之後期望值:ls1 = ['192.168.1.8', '192.168.26.8', '192.168.36.8']>>> ls1 = ['192.168.1.8','192.168.36.8','192.168.26.8',]>>> ls1.sort()>>> ls1['1
Time of Update: 2018-12-04
已經放假了,查了一下成績,哇噢,之後資料結構還是那麼不爽啊。。。不過算了,大學嗎,及格就好了。到了暑假,又要寫什麼實踐報告,唉~難道就不能讓我安安穩穩的看看書嗎?好吧,我是不會去打工的,學校沒什麼學的只有自己看書了。一直對Linux高度興趣,但是學校一直沒有教,還得等到下下個學期啊,還是自己找了點資料看看,在圖書館也借了一本書。突然發現,一個叫python的語言,經過瞭解發現這是一門很不錯的語言,而且可以和C/C++一起使用,對語言的分析很不錯,管理Linux貌似也挺好的,而且貌似挺受歡迎,連G
Time of Update: 2018-12-04
唉,終於把《a byte of python》的筆記搞定了,說實話,之前在學校基本都看了,現在要我又看一遍然後寫下讀書筆記真的是感覺好累啊,覺得沒什麼好講的。不停的糾結要寫什麼,最後寫著寫著寫的像教程一樣,但是又不是很好的教程,不倫不類。。。 《a byte of
Time of Update: 2018-12-04
import res = ''.join(s.split())fetch = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]').findallprint ''.join(fetch(s))結果為:linkedlists 為第三關網頁源碼中的被注釋的部分,第三關網頁為:http://www.pythonchallenge.com/pc/def/equality.html解決這關的關鍵就在於第三關圖片下面的圖示資訊:One small
Time of Update: 2018-12-04
1.print語句在2.0版本之後支援重新導向,使用>>文法:輸出到標準錯誤流import sysprint >> sys.stderr, 'Fatal error: invalid input!'輸出到log檔案logfile = open('/tmp/mylog.txt', 'a')print >> logfile, 'Fatal error: invalid input!'logfile.close() 2.Python can be
Time of Update: 2018-12-04
我們知道在Python源碼的標頭檔中要聲明編碼方式,如果你不只是會用到ascii碼,很多人都寫得都有點差別:#coding=utf-8 #coding:utf-8#-*- coding:utf-8 -*-那麼怎樣寫才是有效地呢,哪些優勢無效的呢? 可以查看下http://www.python.org/dev/peps/pep-0263/的解釋粗略的看下:概要:
Time of Update: 2018-12-04
Python中的easy_install工具很爽,它的作用類似於Php中的pear,或者Ruby中的gem,或者Perl中的cpan。如果想使用easy_install工具,可能需要先安裝setuptools,不過更酷的方法是使用ez_setup.py指令碼:wget -q http://peak.telecommunity.com/dist/ez_setup.pypython
Time of Update: 2018-12-04
讀書筆記ref:http://interactivepython.org/courselib/static/pythonds/BasicDS/stacks.htmlStack : LIFO last-in first-out生活中的例子: 放書,瀏覽器記錄等stack通常的操作:Stack() 建立一個空的棧對象push() 把一個元素添加到棧的最頂層pop() 刪除棧最頂層的元素,並返回這個元素peek() 返回最頂層的元素,並不刪除它isEmpty() 判斷棧是否為空白size()
Time of Update: 2018-12-04
21.標準Type的分類作者將標準Type分成三個Model,以搞清相互之間的關係,以及如何動作。①Storage Model:Storage Model Category Python Types That Fit CategoryScalar/atomNumbers (all numeric types), strings (all are literals)Container Lists, tuples,
Time of Update: 2018-12-04
沒有使用隊列 ,也沒有線程池 還在學習 只是多線程 #coding:utf8import urllib2,sys,re import threading,osimport time,datetime'''這裡沒有使用隊列 只是採用多線程分發 對代理量不大的網頁還行 但是幾百幾千效能就很差了'''def get_proxy_page(url): '''解析代理頁面 擷取所有Proxy 位址''' proxy_list = [] p =
Time of Update: 2018-12-04
包含yield運算式的函數是特殊的函數,叫做產生器函數(generator function),被調用時將返回一個迭代器(iterator),調用時可以使用next或send(msg)。它的用法與return相似,區別在於它會記住上次迭代的狀態,繼續執行。 send(msg)與next()的區別在於send可以傳遞參數給yield運算式,這時傳遞的參數會作為yield運算式的值,而yield的參數是返回給調用者的值。初始調用時必須先next()或send(None),否則會報錯。 舉個例子:
Time of Update: 2018-12-04
#!/usr/bin/env python#coding=utf-8#來源: python核心編程 多線程章節import threadingfrom time import ctime,sleep,time '''使用建立執行個體的方法使用threading的多線程方法,建立2個線程,熟悉線程的基本操作''''''#建立一個thread執行個體,傳給他一個函數secds=[4,2] #每個線程停頓的時間def loop(nloop,secds): print 'the
Time of Update: 2018-12-04
#分析: #5!+4!+3!+2!+1#對於一個數位階乘reduce(lambda x,y:x*y,range(1,6))#對於一組數位加法reduce(lambda x,y:x+y,range(1,6))#如果我們用代數的方法,就是把range[1,6]這個數組換成,每個元素為1-5每個階乘就行了#[5!,4!,3!,2!,1!]#最笨得方法就是手動寫5個,在笨一點就是for迴圈5個出來 #這是第一個版本,甚至連map都沒有def singles(): singles=[]
Time of Update: 2018-12-04
沒有考慮效率問題,只是為了簡潔,呵呵#問題2 使用filter講100以內的質數挑選出來#filter(function or None, sequence) -> list, tuple, or string #filter(def1,list)->list就是2,到100了,這個def怎麼辦呢 就是一個傳回值為布爾型的函數def isprime(m): #質數是指只能被1和它本身整除的數 for i in range(2, m/2+1): if m %