Time of Update: 2017-01-19
random 模組中的常用函數複製代碼 代碼如下:random()返回一個位於區間 [0,1] 內的實數;uniform(a, b)返回一個位於區間 [a,b] 內的實數;randint(a, b)返回一個位於區間 [a,b] 內的整數;choice(sequence)返回一個位於 sequence 中的元素,其中,sequence 為一個有序序列,如 list、string 或者 tuple 等類型;randrange([start], stop[, step])等效於
Time of Update: 2017-01-19
Python 是物件導向的語言,所以程式拋出的異常也是類。常見的異常類1.NameError:嘗試訪問一個沒有申明的變數2.ZeroDivisionError:除數為 03.SyntaxError:語法錯誤4.IndexError:索引超出序列範圍5.KeyError:請求一個不存在的字典關鍵字6.IOError:輸入輸出錯誤(比如你要讀的檔案不存在)7.AttributeError:嘗試訪問未知的對象屬性8.TypeError:傳給函數的參數類型不正確,比如給 int
Time of Update: 2017-01-19
set 是一個無序的元素集合,支援並、交、差及對稱差等數學運算, 但由於 set 不記錄元素位置,因此不支援索引、分區等類序列的操作。初始化複製代碼 代碼如下:s0 = set()d0 = {}s1 = {0}s2 = {i % 2 for i in range(10)}s = set('hi')t = set(['h', 'e', 'l', 'l', 'o'])print(s0, s1, s2, s, t, type(d0))運行結果:複製代碼 代碼如下:set() {0} {0, 1} {'
Time of Update: 2017-01-19
Ruby中有一個很方便的Struct類,用來實現結構體。這樣就不用費力的去定義一個完整的類來僅僅用作訪問屬性。複製代碼 代碼如下:class Dog < Struct.new(:name, :age)endfred = Dog.new("fred", 5)printf "name:%s age:%d", fred.name, fred.age##name:fred age:5Python3.4中也可以這麼幹,但寫法很累贅。其中包含self.name = name
Time of Update: 2017-01-19
python語言本身沒有提供const,但實際開發中經常會遇到需要使用const的情形,由於語言本身沒有這種支出,因此需要使用一些技巧來實現這一功能定義const類如下複製代碼 代碼如下:import sysclass Const(object): class ConstError(TypeException): pass def __setattr__(self, key,
Time of Update: 2017-01-19
正在編寫的程式用的很多Windows下的操作,查了很多資料。看到剪下板的操作時,想起以前想要做的一個小程式,當時也沒做,現在正好順手寫完。功能:按printscreen鍵進行截圖的時候,資料儲存在剪下板裡面,很不方便。比如遊戲的時候截一個瞬間的圖片,但你不能離開遊戲儲存圖片,不方便多次截圖。而我也不喜歡安裝各種軟體,所以準備寫這個工具。思路:一個是自訂快速鍵,截圖,儲存。考慮到很可能各種衝突,取消。然後還是用按printscreen來截圖,然後從剪下板讀取圖片資料,儲存。想法是,先監聽鍵盤按鍵,
Time of Update: 2017-01-19
本文執行個體講述了python映射列表。分享給大家供大家參考。具體分析如下:列表映射是個非常有用的方法,通過對列表的每個元素應用一個函數來轉換資料,可以使用一種策略或者方法來遍曆計算每個元素。例如:複製代碼 代碼如下:params = {"server":"mpilgrim", \
Time of Update: 2017-01-19
由於Google reader的關閉,這段時間接觸rss的東西相對多很多。試過qq的reader,不怎麼樣,閱讀速度沒有,是否閱讀的標記也沒有。其他網站的不想用,又要多註冊賬戶。找到python的rss處理包feedparser,官方文檔很詳細。http://pythonhosted.org/feedparser/複製代碼 代碼如下:>>> import feedparser>>> d =
Time of Update: 2017-01-19
今天在網上看到type的一段代碼 ,然後查了一下文檔,才知道type還有三個參數的用法。http://docs.python.org/2/library/functions.html以前只是知道type可以檢測物件類型。然後發現了一個有趣的用法。複製代碼 代碼如下:def println(self):a = 1 + 1print “%s,%s” % (self.aa, a)A = type(‘A',(),{‘aa':'print a', ‘println': println})a =
Time of Update: 2017-01-19
本文執行個體講述了Python中的is和id用法。分享給大家供大家參考。具體分析如下:(ob1 is ob2) 等價於 (id(ob1) == id(ob2))首先id函數可以獲得對象的記憶體位址,如果兩個對象的記憶體位址是一樣的,那麼這兩個對象肯定是一個對象。和is是等價的。Python原始碼為證。複製代碼 代碼如下:static PyObject * cmp_outcome(int op, register PyObject *v, register PyObject
Time of Update: 2017-01-19
寫的dht協議搜尋的程式,這幾天最佳化了一下發現速度確實快了好多。但是出現了一個新的問題,記憶體直接飆升,我開了十個爬蟲佔用記憶體800m。開始我以為是節點太多了,找了幾個小問題修改一下,發現沒用。後來就到網上尋找python記憶體分析的工具,查了一點資料發現python有個meliae庫操作非常方便,就流量分析了一下,發現不是節點太多的原因0
Time of Update: 2017-01-19
看python社區大媽組織的內容裡邊有一篇講python記憶體最佳化的,用到了__slots__。然後查了一下,總結一下。感覺非常有用python類在進行執行個體化的時候,會有一個__dict__屬性,裡邊有可用的執行個體屬性名稱和值。聲明__slots__後,執行個體就只會含有__slots__裡有的屬性名稱。# coding: utf-8 class A(object): x = 1 def __init__(self): self.y = 2 a = A()print a._
Time of Update: 2017-01-19
看這個模組要先看with as的用法,最常用的方法就是開啟一個檔案:複製代碼 代碼如下:with open(“filename”) as
Time of Update: 2017-01-19
Inotify地址:訪問# -*- coding:utf-8 -*-import osimport pyinotifyfrom functions import *WATCH_PATH = '' #監控目錄if not WATCH_PATH: wlog('Error',"The WATCH_PATH setting MUST be set.") sys.exit()else: if os.path.exists(WATCH_PATH): wlog('Watch
Time of Update: 2017-01-19
閑暇之時,用Python實現了一下RC4演算法編碼 UTF-8class 方式#/usr/bin/python#coding=utf-8import sys,os,hashlib,time,base64class rc4: def __init__(self,public_key = None,ckey_lenth = 16): self.ckey_lenth = ckey_lenth self.public_key = public_key or
Time of Update: 2017-01-19
#/usr/bin/env/python#coding=utf-8import sys,re,time,osmaxdata = 50000 #單位KBmemfilename = '/tmp/newnetcardtransdata.txt'netcard = '/proc/net/dev'def checkfile(filename): if os.path.isfile(filename): pass else: f = open(filename, 'w')
Time of Update: 2017-01-19
首先到官網下載python2.7.3版本,編譯安裝複製代碼 代碼如下:$wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz$tar zxvf Python-2.7.3.tgz$cd Python-2.7.3$./configure$make && make install然後備份原來的python,並把python2.7做軟串連到新的位置複製代碼 代碼如下:$mv /usr/bin/python
Time of Update: 2017-01-19
閑暇之餘,在家裡自建了個伺服器,因為用的小區寬頻,IP位動態分配。網域名稱解析就是個問題,我的網域名稱一般停放在DNSPod下。DNSPod有提供修改的API,就用Python簡單的實現了一下動態解析。這樣,就不用安裝花生殼了。 廢話不說,看代碼:#!/usr/bin/env python#-*- coding:utf-8 -*-import httplib, urllib, urllib2import timeimport sys,osimport reimport jsonusername
Time of Update: 2017-01-19
zip檔案是我們經常使用的打包格式之一,python解壓和壓縮zip效率非凡。 python解壓zip文檔:複製代碼 代碼如下:#/usr/bin/python#coding=utf-8import os,sys,timeimport zipfilefilename = 'callofdutyblackopszombies_1349649132343_my.zip' #要解壓的檔案filedir = 'data/' #解壓後放入的目錄r =
Time of Update: 2017-01-19
簡單的一個pythonTlog類複製代碼 代碼如下:#/usr/bin/python#coding=utf-8import time,typesclass logsys: def __init__(self, project, logfilename = 'sys_log.txt'): self.project = project