• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python拾遺(一)

    python扔在一邊很久了,最近剛好有幾天閑,買了本《Head First Python》復習一下。

    跟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上面遙控的,哈哈哈哈。

    會寫一個系列,可能有兩到四部分,看了一下這本書前三章主要是些簡單的基礎、四到七章主要是web開發、八九十主要是用戶python做移動開發,最后一章是python做數據處理,第一部分和數據處理這一章都比較簡單而且其實一直在用的都是這方面的東西都比較熟悉,第二部分會重點看一下,移動開發看情況,因為一般都是用原生開發,跨平臺也就是那么幾種方案,python做移動開發實在太非主流了,最后可能會有個總結,也可能沒有。

    這是第一部分和數據處理。

    內置函數及數據結構和自帶的庫

    BIF是Built-in Function的縮寫。比如dir()、isinstance(name, type)。

    clipboard.png

    其他比較常用而且重要的有:

    help

    clipboard.png
    如果對函數的參數和返回值不太確定的話可以用help來查,相當于python的自帶文檔。

    print

    clipboard.png
    這個是最基本的打印函數,在沒有debugger的時候debug可以用到。

    help(print)
    

    clipboard.png
    竟然會出現SyntaxError,對print用help的時候要加上引號。因為信息很長,所以不截圖了。python的print函數其實是非常復雜的,以后有機會專門研究一下。

    open

    clipboard.png

    locals

    clipboard.png
    返回當前作用域下的本地變量。

    clipboard.png

    exit

    clipboard.png

    object

    clipboard.png
    這個很好玩兒。

    class

    clipboard.png

    clipboard.png
    這個更好玩兒,__builtin__模塊里面包含了BIF、異常和一些其他的對象。

    字符串(STRING)

    find

    clipboard.png
    在字符串里查找,如果沒有的話返回-1,如果有的話返回首次出現的位置。
    clipboard.png

    split

    clipboard.png
    split接收兩個參數,第二個參數maxsplit有默認值為-1,如果調用的時候不給這個參數,默認是把整個字符串用第一個參數指定的splitter分割開,如果給定了,那么最后分割的數就是maxsplit+1。第一個參數的默認值是None,如果不給定,splitter就是空格。
    clipboard.png

    列表(LIST)

    clipboard.png

    操作

    clipboard.png

    以上是從help(lsit)里面截出來的。還有很多,限于篇幅所以沒有截出來。

    這些函數都是list類的成員函數,在《Python源碼剖析》里面應該有更詳細的解釋和實現。之后看的時候應該注意。

    字典(DICT)

    clipboard.png

    跟列表都是內置的數據結構。

    操作

    clipboard.png

    集合(SET)

    clipboard.png

    操作

    clipboard.png

    OS庫

    clipboard.png

    import os
    os.getcwd()
    os.chdir()
    

    clipboard.png

    python: SyntaxError: EOL while scanning string literal ->stackoverflow
    出現這個SyntaxError的原因在于反斜杠和后引號被當作是轉義字符導致整個字符串沒有了end,EOL應該是end of line的意思。

    os.environ['OS']
    

    OS庫中environ變量是一個保存環境變量的字典,可以通過訪問字典值得方式獲得一些環境變量的值。
    Windows下通過系統屬性看到的是這樣的:

    clipboard.png

    通過Python得到的是這樣的:

    clipboard.png

    Exception

    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

    seek() function? ->stackoverflow

    參考資料:
    《Head First Python(中文版)》

    版權聲明:本文為weixin_34208185原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_34208185/article/details/89369846

    智能推薦

    iOS單元測試拾遺(一)

      最近開始在團隊中推廣單元測試,這邊使用的的是Kiwi測試框架。詳細教程大家可以參考下方三篇文章 https://www.jianshu.com/p/ad55e197a8d3 https://onevcat.com/2014/02/ios-test-with-kiwi/ https://onevcat.com/2014/05/kiwi-mock-stub-test/ &ems...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    猜你喜歡

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    精品国产乱码久久久久久蜜桃不卡