Time of Update: 2016-06-06
Python的字串被劃分為不可變序列的類別,意味著這些字串所包含的字元存在從左至右的位置順序,並且它們不可以在本地進行修改。基本操作字串可以通過+操作符進行合并,可以使用*運算子進行重複。 >>>len("abc")3>>>'abc'+'def''abcdef'>>>'NI!'*4'NI!NI!NI!NI!'字串內部的一個反斜線“\”可允許把字串放於多行。 >>>str = "aaa\ ....bbb\ ....ccc\
Time of Update: 2016-06-06
基本映射映射使用在根據不同URLs請求來產生相對應的返回內容.Bottle使用route() 修飾器來實現映射.from bottle import route, run@route('/hello')def hello(): return "Hello World!"run() # This starts the HTTP server運行這個程式,訪問http://localhost:8080/hello將會在瀏覽器裡看到 "Hello World!".GET, POST, HEAD, .
Time of Update: 2016-06-06
這裡我不討論 python 的一些有用的庫或者架構,只從語言本身,最小支援的情況下談論這門語言本身。語言的發展都是越來越接近Lisp,這也是Lisp這門語言偉大的原因。下面我羅列一下我學習 python
Time of Update: 2016-06-06
你曾經想知道電腦是如何工作的嗎?儘管我們不能在一篇文章裡面教會你所有的東西,但是可以通過學習如何寫出你自己的程式來獲得一個良好的開端。在這篇Python教程中,你將會學到電腦編程的基礎知識,使用對新手來說最棒的程式設計語言之一。什麼是編程?儘可能簡單的講,編程是編寫代碼,命令電腦去完成某項任務的藝術。這裡講的某項任務,可以是簡單的兩數相加,或是像把飛船送入軌道這樣的複雜任務!一個程式裡面,最小的組成部分被稱作語句(statement)——代表了對電腦做出的一條指令。當你完成了自己的程式後,編譯器
Time of Update: 2016-06-06
之前對bottle做過不少的介紹,也寫過一些文章來說明bottle的缺點,最近發現其實之前有些地方說的不太公平,所以趁此機會也來更正一下。 bottle是支援類似flask url_for的文法的,具體使用方法在下文介紹 bottle的request.query之類的參數預設是str類型,也是有原因的,比如我在給google做代理的時候,編碼就不一定是utf8的,如果強制轉化utf8就會報錯
Time of Update: 2016-06-06
我一輩子都在寫代碼,但從來沒有掌握編碼的精髓。大部分情況下使用Visual Basic,因為我用VB最舒服。同時還略微瞭解一點其他語言(R、C、JavaScript、Applescript、Hypertext和1979年學習的BASIC)。幾年前,我決定只用Python,以此來提高我的編碼能力。在此過程中重複發明了許多輪子,但我並不介意,因為我享受解決問題的樂趣。同時有時能發現更有效、Python式的解決方案。時間長了以後,會有頓悟的時刻,意識到根本沒必要用困難且冗長的方式處理問題。下面列出10
Time of Update: 2016-06-06
Python擁有著極其豐富且穩定的資料科學工具環境。遺憾的是,對不瞭解的人來說這個環境猶如叢林一般(cue snake
Time of Update: 2016-06-06
這個問題是如何在一些情境下使用斷言運算式,通常會有人誤用它,所以我決定寫一篇文章來說明何時使用斷言,什麼時候不用。為那些還不清楚它的人,Python的assert是用來檢查一個條件,如果它為真,就不做任何事。如果它為假,則會拋出AssertError並且包含錯誤資訊。例如: py> x = 23py> assert x > 0, "x is not zero or negative"py> assert x%2 == 0, "x is not an even number"Traceback (
Time of Update: 2016-06-06
1. 執行個體的背景說明假定一個個人資訊系統,需要記錄系統中各個人的故鄉、居住地、以及到過的城市。資料庫設計如下:Models.py 內容如下:from django.db import models class Province(models.Model): name = models.CharField(max_length=10) def __unicode__(self): return self.name class City(models.Model): name =
Time of Update: 2016-06-06
執行個體的背景說明假定一個個人資訊系統,需要記錄系統中各個人的故鄉、居住地、以及到過的城市。資料庫設計如下:Models.py 內容如下: from django.db import models class Province(models.Model): name = models.CharField(max_length=10) def __unicode__(self): return self.name class City(models.Model): name =
Time of Update: 2016-06-06
Stickyworld 的網頁應用已經可使用視訊撥放一段時間,但都是通過YouTube的嵌入模式實現。我們開始提供新的版本可使用視訊操作,可以讓我們的使用者不用受制於YouTube的服務。我過去曾經參與過一個項目,客戶需要視頻轉碼功能,這實在不是個容易達成的需求。需要大量的讀取每一個視頻、音訊與視頻容器的格式再輸出符合網頁使用與喜好的視頻格式。考慮到這一點,我們決定將轉碼的工作交給 Encoding.com
Time of Update: 2016-06-06
對數學家來說,Python這門語言有著很多吸引他們的地方。舉幾個例子:對於tuple、lists以及sets等容器的支援,使用與傳統數學類似的符號標記方式,還有列表推導式這樣與數學中集合推導式和集的結構式(set-builder notation)很相似的文法結構。另外一些很吸引數學愛好者的特性是Python中的iterator(迭代器)、generator(產生器)以及相關的itertools包。這些工具協助人們能夠很輕鬆的寫出處理諸如無窮序列(infinite sequence)、隨機過程(
Time of Update: 2016-06-06
對於程式開發新手來說,一個最常見的困惑是測試的主題。他們隱約覺得“單元測試”是很好的,而且他們也應該做單元測試。但他們卻不懂這個詞的真正含義。如果這聽起來像是在說你,不要怕!在這篇文章中,我將介紹什麼是單元測試,為什麼它有用,以及如何對Python的代碼進行單元測試。什麼是測試?在討論為什麼測試很有用、怎樣進行測試之前,讓我們先花幾分鐘來定義一下“單元測試”究竟是什麼。在一般的編程術語中,“測試”指的是通過編寫可以調用的代碼(獨立於你實際應用程式的代碼)來協助你確定程式中是否有錯誤。這並不能證明
Time of Update: 2016-06-06
裝飾器(Decorators)裝飾器是這樣一種設計模式:如果一個類希望添加其他類的一些功能,而不希望通過繼承或是直接修改原始碼實現,那麼可以使用裝飾器模式。簡單來說Python中的裝飾器就是指某些函數或其他可調用對象,以函數或類作為可選輸入參數,然後返回函數或類的形式。通過這個在Python2.6版本中被新加入的特性可以用來實現裝飾器設計模式。順便提一句,在繼續閱讀之前,如果你對Python中的閉包(Closure)概念不清楚,請查看本文結尾後的附錄,如果沒有閉包的相關概念,很難恰當的理解Pyt
Time of Update: 2016-06-06
早上我偶然看見一篇介紹兩個Python指令碼的博文,其中一個效率更高。這篇博文已經被刪除,所以我沒辦法給出文章連結,但指令碼基本可以歸結如下:fast.py import timea = [i for i in range(1000000)]sum = 0t1 = time.time()for i in a: sum = sum + it2 = time.time()print t2-t1slow.py import timefrom random import shufflea = [i
Time of Update: 2016-06-06
類和對象類和函數一樣都是Python中的對象。當一個類定義完成之後,Python將建立一個“類對象”並將其賦值給一個同名變數。類是type類型的對象(是不是有點拗口?)。類對象是可調用的(callable,實現了 __call__方法),並且調用它能夠建立類的對象。你可以將類當做其他對象那麼處理。例如,你能夠給它們的屬性賦值,你能夠將它們賦值給一個變數,你可以在任何可調用對象能夠用的地方使用它們,比如在一個map中。事實上當你在使用map(str,
Time of Update: 2016-06-06
錄一段音頻,把它的音高改變50次並把每一個新的音頻匹配到鍵盤的一個鍵位,你就能把電腦變成一架鋼琴!一段音頻可以被編碼為一組數值的數組(或者列表),像這樣:我們可以在數組中每隔一秒拿掉一秒的值來將這段音訊速度變成兩倍。如此我們不僅將音訊長度減半了,而且我們還將它的頻率翻倍了,這樣使得它擁有比原來更高的音高(pitch)。相反地,假如我們將數組中每個值重複一次,我們將得到一段更慢,周期更長,即音高更低的音頻:這裡提供一個可以按任意係數改變音頻速度的任意簡單的Python函數: import
Time of Update: 2016-06-06
目前 Linux 下有一些使用 Python 語言編寫的 Linux 系統監控工具 比如 inotify-sync(檔案系統安全監視軟體)、glances(資源監控工具)在實際工作中,Linux 系統管理員可以根據自己使用的伺服器的具體情況編寫一下簡單實用的指令碼實現對 Linux 伺服器的監控。 本文介紹一下使用 Python 指令碼實現對 Linux 伺服器 CPU 記憶體 網路的監控指令碼的編寫。Python 版本說明Python 是由 Guido van Rossum
Time of Update: 2016-06-06
假如你對數獨解法感興趣,你可能聽說過精確覆蓋問題。給定全集 X 和 X 的子集的集合 Y ,存在一個 Y 的子集 Y*,使得 Y* 構成 X 的一種分割。這兒有個Python寫的例子。 X = {1, 2, 3, 4, 5, 6, 7}Y = { 'A': [1, 4, 7], 'B': [1, 4], 'C': [4, 5, 7], 'D': [3, 5, 6], 'E': [2, 3, 6, 7], 'F': [2, 7]}這個例子的唯一解是['B', 'D',
Time of Update: 2016-06-06
什麼是method?function就是可以通過名字可以調用的一段代碼,我們可以傳參數進去,得到傳回值。所有的參數都是明確的傳遞過去的。method是function與對象的結合。我們調用一個方法的時候,有些參數是隱含的傳遞過去的。下文會詳細介紹。instancemethod In [5]: class Human(object): ...: def __init__(self, weight): ...: self.weight = weight ...: def