Time of Update: 2017-01-13
為了防止誤導讀者,本文所有概念性內容均截取自對應Wiki冒泡排序原理冒泡排序(Bubble
Time of Update: 2017-01-13
namedtuple是繼承自tuple的子類。namedtuple建立一個和tuple類似的對象,而且對象擁有可訪問的屬性。我們都知道Python中的tuple是一個非常高效的集合對象,但是我們只能通過索引的方式訪問這個集合中的元素,比如下面的代碼: 代碼如下複製代碼 Bob=('bob',30,'male')print'Representation:',BobJane=('Jane',29,'female')print'Field by
Time of Update: 2017-01-13
在Python對於簡單的對象轉json還是比較簡單的,如下import jsond = {'a': 'aaa', 'b': ['b1', 'b2', 'b3'], 'c': 100}json_str = json.dumps(d)print json_str對於複雜物件,可以使用下面的方法來實現,比如:import jsonclass Customer: def __init__(self, name, grade, age, home, office):
Time of Update: 2017-01-13
二月中旬以來一直在看 Python 協程方面的東東(或者說是使用 aiohttp 這個非同步庫寫個爬蟲)。上周末,終於寫出了一個差強人意的版本。就在這裡寫一寫自己的心得。async / await這在 Python 的協程中無足輕重。而我在二月份寫的幾篇博文卻是專為這做的前序。一個月前我還對他們一竅不通,很不理解協程,通過這一個月的學習,我豁然開朗,大致瞭解了協程的前世今生。async 與 await , 這是在 Python3.5 中引入的新文法,用於增強 Python 協程方面的支援。但是,
Time of Update: 2017-01-13
今天無意間看到Python中的functools模組,發現使用這個模組的wraps()可以實現一些類似攔截器的功能,比如:封裝異常,隱藏異常,列印日誌,統計函數使用時間等。下面就通過幾個程式碼片段來看看具體使用方法:封裝異常#!/usr/bin/env python# -*- coding: utf-8 -*-import functoolsdef wrap_exception(func): @functools.wraps(func)
Time of Update: 2017-01-13
Regex(regular expression)是一種用於匹配文本形式的強大邏輯運算式,在 Python 中的 re 模組提供了Regex的支援。Regex由一些一般字元和一些元字元(metacharacters)組成。一般字元包括大小寫字母和數字,而元字元則具有特殊的含義。當Regex為一個普通的字串時,一個Regex的匹配行為就是一個普通的字串尋找過程。例如,Regex"testing"中沒有包含任何元字元,它可以匹配"testing"和"
Time of Update: 2017-01-13
一旦走上了編程之路,如果你不把編碼問題搞清楚,那麼它將像幽靈一般糾纏你整個職業生涯,各種靈異事件會接踵而來,揮之不去。只有充分發揮程式員死磕到底的精神你才有可能徹底擺脫編碼問題帶來的煩惱,我第一次遇到編碼問題是寫JavaWeb相關的項目,一串字元從瀏覽器游離到應用程式代碼中,翻江倒海沉浸到資料庫中,隨時隨地都有可能踩到編碼的地雷。第二次遇到編碼問題就是學Python的時候,在爬取網頁資料時,編碼問題又出現了,當時我的心情是奔潰的,用時下最ing的一句話就是:“我當時就懵逼了&rdqu
Time of Update: 2017-01-13
在業務穩定性要求比較高的情況下,營運為能及時發現問題,有時需要對應用程式的日誌進行即時分析,當符合某個條件時就立刻警示,而不是被動等待出問題後去解決,比如要監控nginx的$request_time和$upstream_response_time時間,分析出最耗時的請求,然後去改進代碼,這時就要對日誌進行即時分析了,發現時間長的語句就要警示出來,提醒開發人員要關注,當然這是其中一個應用情境,通過這種監控方式還可以應用到任何需要判斷或分析檔案的地方,所以今天我們就來看看如何用python實現即時監
Time of Update: 2017-01-13
什麼是尾遞迴有很多時候,使用遞迴的方式寫代碼要比迭代更直觀一些,以下面的階乘為例:def factorial(n): if n == 0: return 1 return factorial(n - 1) * n但是這個函數調用,如果展開,會變成如下的形式:factorial(4) factorial(3) * 4&
Time of Update: 2017-01-13
1 函數調用在程式設計中,函數是指用於進行某種計算的一系列語句的有名稱的組合。定義一個函數時,需要指定函數的名稱並寫下一系列程式語句。之後,就可以使用名稱來“調用”這個函數。前面我們已經見過函數調用的例子:>>> type(32)<type 'int'>這個函數的名稱是
Time of Update: 2017-01-13
一、實驗簡介一定有人好奇通過連結進行郵箱認證背後的原理是什麼,事實上它的原理非常簡。本門課程將通過使用 SendCloud 提供的 API 來實現一個本地版的郵箱認證流程。1.1 課程知識點通過本次課程的學習,我們將接觸到以下知識:使用 SendCloud 的郵件 API 給指定郵箱發送郵件。使用 MySQLdb 模組對 mysql 資料庫進行操作。使用 Requests 模組發送 HTTP POST 請求。使用 Flask 架構實現簡單的網頁後台。使用 hashlib
Time of Update: 2017-01-13
1. 調用函數時,函數名其實就是指向一個函數對象的引用,完全可以把函數名賦給一個變數,相當於給這個函數起了一個“別名” >>> a = abs # 變數a指向abs函數 >>> a(-1) # 所以也可以通過a調用abs函數 12. 定義函數:使用def語句,依次寫出函數名、括弧、括弧中的參數和冒號:
Time of Update: 2017-01-13
python 迭代器迭代器是一個實現了迭代器協議的對象,Python中的迭代器協議就是有next方法的對象會前進到下一結果,而在一系列結果的末尾是,則會引發StopIteration。>>> l = range(2)>>> i = iter(l)>>> i<listiterator object at 0x10a38d990>>>> i.next()0>>> i.next()1>>&
Time of Update: 2017-01-13
引言這篇文章介紹Python如何將函數與資料整合成類,並通過一個對象名稱來訪問它們。Python中每條資料都是對象,每個對象都由三部分組成:標識,資料,類型;標識是對象的名稱,也儲存了該對象的記憶體位址(對象引用),類型規定了這個對象所能儲存的值的類型,記憶體中的某塊地區儲存了對象的資料值;python中一切皆為對象,所謂對象:我自己就是一個對象,我玩的電腦就是對象,坐著的椅子就是對象,家裡養的小狗也是一個對象。。。。。。 我們通過描述屬性(特徵)和行為來描述一個對象的。比如家裡的小狗
Time of Update: 2017-01-13
1. Oracle用戶端程式安裝1.1.系統說明作業系統: CentOS 5.111.2.下載軟體需要安裝oracle 用戶端程式包含下列3個程式1) oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm2) oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm3)
Time of Update: 2017-01-13
編寫軟體包(庫)時,設計良好的 API 與軟體包的功能同樣重要(當然,前提是你想讓別人使用),那麼好的 API 的標準是什嗎?在本文中,筆者將會比較 Requests 庫和 Urllib 庫(屬於 Python 標準庫)在一些典型的 HTTP 使用情境下的差異,並依此發表一些筆者的看法,同時討論一下 Requests 庫為何在 Python 使用者群中成為實際上的標準庫。接下來的討論中我們將會用到 Python 3.5 和 Requests 2.10.0。這篇文章改編自上周我在本地的
Time of Update: 2017-01-13
Threading 模組從 Python 1.5.2 版開始出現,用於增強底層的多線程模組 thread 。Threading 模組讓操作多線程變得更簡單,並且支援程式同時運行多個操作。注意,Python 中的多線程最好用於處理有關 I/O 的操作,如從網上下載資源或者從本地讀取檔案或者目錄。如果你要做的是 CPU 密集型操作,那麼你需要使用 Python 的 multiprocessing 模組。這樣做的原因是,Python 有一個全域解譯器鎖
Time of Update: 2017-01-13
python指令碼執行shell,通過crontab執行python指令碼 代碼如下複製代碼 #!/usr/bin/env python#-*-coding:utf-8-*-import osimport timeimport datetimeimport subprocesstoday =datetime.date.today()deltadays = datetime.timedelta(days=1) #確定日期差額,如前天
Time of Update: 2017-01-13
之前 PythonTG 翻譯組分享過一篇 Pygame 的入門教程,教的是單機遊戲開發。今天和大家分享如何編寫一個多人線上遊戲,此教程共分為三部分,今天是第一篇,為大致概述。有興趣的朋友請繼續關注後續文章。本文作者為 Kyrylo Subbotin,是一家 IT 諮詢公司的 Python 工程師。本文譯者為 sleepyjoker,由編程派作者 EarlGrey
Time of Update: 2017-01-13
一、安裝python2.71、下載可從 http://www.python.org/進行下載 代碼如下複製代碼 #wget http://www.python.org/ftp/python/ 2、解壓 代碼如下複製代碼 #tar jxvf Python-2.7.6.tar.bz2 3.安裝: 代碼如下複製代碼 #cd Python-2.7.6#./configure --prefix=/usr/local/Python2