python扔在一邊好久了,最近恰好有幾天閒,買了本《Head First Python》複習一下。html
跟python結緣是由於教C語言的王青老師推薦咱們邊學C邊學python,記得說是C結合腳本語言會發揮出比較大的威力,還推薦了一門Coursera上的公開課,名字好像叫how to program,當時只是據說,由於當時各類狀態,並無學。
後來用一個暑假學《learn python the hard way》,沒有紙質的書,不少東西雖然知道,學的並不踏實,以後又看《python源碼剖析》,多是C基礎不夠好緣由,看到一半就放棄了,之後有機會還會再看。
再後來用python作《人工智能》的做業,寫起來很是爽,但是寫得一團糟,都只是能跑的級別而已,有時須要跑幾個小時才能出結果,而後import一下sklearn的庫,想着怎麼也得跑個幾分鐘吧,結果人家10s就出結果了OTZ。雖然能夠profile一下,或者用pypy再跑一下,可終歸治標不治本。
再後來也就是寫Dr.Kang的做業「把Simulink和Stateflow模型轉化到uppaal裏面後作model checking」的時候,由於當時是要把Simulink裏面的map table轉化到uppaal裏面,但是uppaal這個奇葩軟件卻各類反人類,雖然基本語法是C,卻連二維數組都不支持,因此先把map table導出到html裏面,而後用python解析html,把數據搞出來再生成C的一維數組,最後利用行和列的index算出結果的index,至關於模擬一個查找的過程,oral presentation的時候老師好像還比較滿意這個作法。
對了,這期間斷斷續續搞我的主頁,用的是web.py這個簡單的框架,寫出這個框架的天才、reddit的創始人、rss的發明者、年僅二十多歲,抱歉那我的的名字想不起來了,後來自殺了,緬懷一下這位我實在想不起名字的互聯網之子,他的三個東西都真的改變了世界,至少稍微改變了一下個人世界。還在廖雪峯老師的主頁學了一點高階函數、修飾器、lamda,那個教程最後是要本身寫出一個web框架,而後用那個框架搭個博客,要是如今斷網寫我確定寫不出來,還有實訓搞避障小車的時候在樹莓派裏用了一下,不過最後要拍個視頻檢驗成果,咱們的車仍是用手機ssh到pi上面遙控的,哈哈哈哈。python
會寫一個系列,可能有兩到四部分,看了一下這本書前三章主要是些簡單的基礎、四到七章主要是web開發、八九十主要是用戶python作移動開發,最後一章是python作數據處理,第一部分和數據處理這一章都比較簡單並且其實一直在用的都是這方面的東西都比較熟悉,第二部分會重點看一下,移動開發看狀況,由於通常都是用原生開發,跨平臺也就是那麼幾種方案,python作移動開發實在太非主流了,最後可能會有個總結,也可能沒有。web
這是第一部分和數據處理。數組
BIF是Built-in Function的縮寫。好比dir()、isinstance(name, type)。數據結構
其餘比較經常使用並且重要的有:框架
若是對函數的參數和返回值不太肯定的話能夠用help來查,至關於python的自帶文檔。ssh
這個是最基本的打印函數,在沒有debugger的時候debug能夠用到。函數
help(print)
居然會出現SyntaxError,對print用help的時候要加上引號。由於信息很長,因此不截圖了。python的print函數實際上是很是複雜的,之後有機會專門研究一下。ui
返回當前做用域下的本地變量。人工智能
這個很好玩兒。
這個更好玩兒,__builtin__模塊裏面包含了BIF、異常和一些其餘的對象。
在字符串裏查找,若是沒有的話返回-1,若是有的話返回首次出現的位置。
split接收兩個參數,第二個參數maxsplit有默認值爲-1,若是調用的時候不給這個參數,默認是把整個字符串用第一個參數指定的splitter分割開,若是給定了,那麼最後分割的數就是maxsplit+1。第一個參數的默認值是None,若是不給定,splitter就是空格。
以上是從help(lsit)裏面截出來的。還有不少,限於篇幅因此沒有截出來。
這些函數都是list類的成員函數,在《Python源碼剖析》裏面應該有更詳細的解釋和實現。以後看的時候應該注意。
跟列表都是內置的數據結構。
import os os.getcwd() os.chdir()
python: SyntaxError: EOL while scanning string literal ->stackoverflow
出現這個SyntaxError的緣由在於反斜槓和後引號被看成是轉義字符致使整個字符串沒有了end,EOL應該是end of line的意思。
os.environ['OS']
OS庫中environ變量是一個保存環境變量的字典,能夠經過訪問字典值得方式得到一些環境變量的值。
Windows下經過系統屬性看到的是這樣的:
經過Python獲得的是這樣的:
def get_coach_data(filename): try: with open(filename) as f: data = f.readline() templ = data.strip().split(',') return(AthleteList(templ.pop(0), templ.pop(0), templ)) except IOError as ioerr: print('File error (get_coach_data): ' + str(ioerr)) return(None)
seek() function? ->stackoverflow
參考資料:《Head First Python(中文版)》