Time of Update: 2017-01-19
在 python的lib目錄裡有一個:this.py,它其實是隱藏著一首詩,源碼如下:複製代碼 代碼如下:s = """Gur Mra bs Clguba, ol Gvz CrgrefOrnhgvshy vf orggre guna htyl.Rkcyvpvg vf orggre guna vzcyvpvg.Fvzcyr vf orggre guna pbzcyrk.Pbzcyrk vf orggre guna pbzcyvpngrq.Syng vf orggre guna
Time of Update: 2017-01-19
一、類的定義和使用python定義一個類的基本文法是:複製代碼 代碼如下:class classname([基類一,基類二...]): [def __init__(self, [agv1,agv2...]):] # 定義建構函式 def method1(self, [agv1,agv2...]): # 成員函數 使用時用:對象執行個體名 =
Time of Update: 2017-01-19
Python語言功能非常強大,除了類之外,還有模組和包的概念,這有點像perl,此處簡單說說包和模組。一、Python中的模組模組——其實就是我們說的庫(lib)的概念,不過它不僅只是可以包含一系列函數,也可以包含類,python裡是沒有像C語言之類,直接include某檔案的,包正是這種類似的東西。Python 引入模組的方法有兩種:1、import 模組名(實際是對應的就是 檔案名稱.py )2、模組名 = __import__("模組檔案名稱(不帶副檔名)")也可以" import
Time of Update: 2017-01-19
1、Python的數組可分為三種類型:(1) list 普通的鏈表,初始化後可以通過特定方法動態增加元素。定義方式:arr = [元素](2) Tuple 固定的數組,一旦定義後,其元素個數是不能再改變的。定義方式:arr = (元素)(2) Dictionary 詞典類型, 即是Hash數組。定義方式:arr = {元素k:v}2、下面具體說明這些數組的使用方法和技巧:(1) list 鏈表數組a、定義時初始化複製代碼 代碼如下:a =
Time of Update: 2017-01-19
通常來說,Python的變數/資料類型非常多,但是它是不需要使用者指定的,因為有些是根據部份系統函數產生,另外一些是自動根據變數的值識別的,這些資料類型常量在class types定義,所以使用時需要 import types如:複製代碼 代碼如下:import typesa = [1,2,3]if type(a) is types.ListType: print aelse: print 'not
Time of Update: 2017-01-19
Python是當今日趨流行的一種指令碼語言,它比Java更簡單,比php更強大,並且還適用於做案頭應用的開發,在ubuntu中,更加是必須的一種指令碼引擎,所以有必要去學習一下,這裡的文章只針對有一定編程基礎,最好是比較熟悉php或javascript的使用者,如果沒任何基礎的新手建議找更詳細的教程去學習。Python的變數是不需要定義的,這方面和php一樣,它比javascript還是寬鬆,不過它是用縮排作為段落標識的,作為習慣了C語言風格文法的人,可能一開始會很不習慣使用,但細一想,其實也是
Time of Update: 2017-01-19
假設有2個有序列表l1、l2,如何效率比較高的將2個list合并並保持有序狀態,這裡預設排序是正序。思路是比較簡單的,無非是依次比較l1和l2頭部第一個元素,將比較小的放在一個新的列表中,以此類推,直到所有的元素都被放到新的列表中。考慮2個列表l1 = [2], l2 = [1],如何將他們合并呢?(注意:下面實現會改變l1和l2本來的值)複製代碼 代碼如下:def signle_merge_sort(l1, l2): tmp = []
Time of Update: 2017-01-19
關於楊輝三角是什麼東西,右轉維基百科:楊輝三角稍微看一下直觀一點的圖:複製代碼
Time of Update: 2017-01-19
一、簡介with是從Python 2.5 引入的一個新的文法,更準確的說,是一種內容相關的管理協議,用於簡化try…except…finally的處理流程。with通過__enter__方法初始化,然後在__exit__中做善後以及處理異常。對於一些需要預先設定,事後要清理的一些任務,with提供了一種非常方便的表達。with的基本文法如下,EXPR是一個任意運算式,VAR是一個單一的變數(可以是tuple),”as VAR”是可選的。複製代碼 代碼如下:with EXPR as
Time of Update: 2017-01-19
經典字典使用函數dict:通過其他映射(比如其他字典)或者(鍵,值)這樣的序列對建立字典。當然dict成為函數不是十分確切,它本質是一種類型。如同list。複製代碼 代碼如下:items=[('name','zhang'),('age',42)]d=dict(items)d['name']len(d):返回項的數量d[k]:返回鍵k上面的值。d[k]=v:將k對應的值設定為k。del d[k]:刪除字典中的這一項。k in
Time of Update: 2017-01-19
本方法是基於文本密度的方法,最初的想法來源於哈工大的《基於行塊分布函數的通用網頁本文抽取演算法》,本文基於此進行一些小修改。約定: 本文基於網頁的不同行來進行統計,因此,假設網頁內容是沒有經過壓縮的,就是網頁有正常的換行的。
Time of Update: 2017-01-19
簡單說明這個演算法主要工作是測量不同特徵值之間的距離,有個這個距離,就可以進行分類了。簡稱kNN。已知:訓練集,以及每個訓練集的標籤。接下來:和訓練集中的資料對比,計算最相似的k個距離。選擇相似資料中最多的那個分類。作為新資料的分類。python執行個體複製代碼 代碼如下:# -*- coding: cp936 -*-#win系統中應用cp936編碼,linux中最好還是utf-8比較好。from numpy import *#引入科學計算包import operator
Time of Update: 2017-01-19
在開發項目過程中,為了方便調試代碼,經常會向stdout中輸出一些日誌,預設的這些日誌就直接顯示在了終端中。而一般的應用伺服器,第三方庫,甚至伺服器的一些通告也會在終端中顯示,這樣就攪亂了我們想要的資訊。我們可以通過對有用的資訊設定不同顏色來達到醒目的效果,因為我平時都是在linux下開發,而linux終端中的顏色是用逸出序列控制的,逸出序列是以ESC開頭,可以用\033完成相同的工作(ESC的ASCII碼用十進位表示就是27,等於用八進位表示的33)。書寫格式,和相關說明如下:複製代碼
Time of Update: 2017-01-19
Step1:安裝python和sublimeStep2:給sublime安裝package control,安裝參見: 官網Step3:配置安裝路徑方式一:配置windows的Path好處就是cmd的時候也可以運行,視為系統,使用者層級的配置;方式二:配置sublime的python的sublime_build點擊:Preference -> Browse Packages -> 在python目錄下,編輯Python.sublime-build檔案,添加python應用程式的路徑:
Time of Update: 2017-01-19
第一次用Python寫這種比較實用且好玩的東西,權當練手吧遊戲說明:* P鍵控制“暫停/開始”* 方向鍵控制貪吃蛇的方向原始碼如下:複製代碼 代碼如下:from Tkinter import *import tkMessageBox,sysfrom random import randintclass Grid(object): def
Time of Update: 2017-01-19
在介紹yield前有必要先說明下Python中的迭代器(iterator)和產生器(constructor)。一、迭代器(iterator)在Python中,for迴圈可以用於Python中的任何類型,包括列表、元祖等等,實際上,for迴圈可用於任何“可迭代對象”,這其實就是迭代器迭代器是一個實現了迭代器協議的對象,Python中的迭代器協議就是有next方法的對象會前進到下一結果,而在一系列結果的末尾是,則會引發StopIteration。任何這類的對象在Python中都可以用for迴圈或其他
Time of Update: 2017-01-19
這個是python的一個內建函數,看書的時候發現了他,mark一下當我們既需要遍曆索引同時需要遍曆元素的時候,可以考慮使用enumerate函數,enumerate函數接受一個可遍曆的對象,如列表、字串比如我們有一個["one","two","there"]的列表,我們需要在列表的每個元素前面加上他的編號複製代碼 代碼如下:i = 0seq = ["one","two","three"]for element in seq: seq[i] = '%d: %s' % (i, seq[i]
Time of Update: 2017-01-19
一、對列表(list)進行排序推薦的排序方式是使用內建的sort()方法,速度最快而且屬於穩定排序複製代碼 代碼如下:>>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','
Time of Update: 2017-01-19
前段時間為準備百度面試惡補的東西,雖然最後還是被刷了,還是把那幾天的“戰利品”放點上來,演算法一直是自己比較薄弱的地方,以後還要更加努力啊。下面用Python實現了幾個常用的排序,如快速排序,選擇排序,以及二路並歸排序等等。複製代碼 代碼如下:#encoding=utf-8import randomfrom copy import copydef directInsertSort(seq): """ 直接插入排序 """ size = len(seq) for i
Time of Update: 2017-01-19
關於Python的檔案遍曆,大概有兩種方法,一種是較為便利的os.walk(),還有一種是利用os.listdir()遞迴遍曆。方法一:利用os.walkos.walk可以自頂向下或者自底向上遍曆整個檔案樹,然後返回一個含有3個元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()會返回一個generater,所以調用的時候一定要放到for迴圈中。複製代碼 代碼如下:import osdef walk_dir(dirname):