Python學習日記_《Python硬件編程實戰》筆記_Mr_Ouyang

書名:    Python硬件編程實戰html

做者:    李茂python

出版社:  機械工業出版社編程


 

Python學習日記_《Python硬件編程實戰》筆記_Mr_Ouyang

 
 

【此處須要插入圖片 Python封面】python2.7


 

筆者簡評:不太適宜購買,全書大篇幅在用圖片來解釋極簡單的細節,對於那些須要做者去深挖、深刻淺出解釋的地方,則一律而過,算是不三不四吧;儘管如此,畢竟是筆者在圖書館好不容易碰運氣找着的一本還算能夠的Python教程書了,也算認真地看了一遍。編輯器


 

 

Python是一種腳本語言,是一種解釋型語言,是一種高級語言,是一種面向對象的語言。函數

 

Python文件的後綴名是.py,它在實質上是一種文本文檔,於是也就能夠用文本編輯器甚至是記事原本進行編輯。工具

 

Python的縮寫是Py,如目前討論比較熱烈的到底是用python2.+版本仍是python3.+版本,就能夠縮寫爲Py2VSPy3。學習

 

Print              #此代碼即爲輸出空行。測試

 

32位 == x86     32位,也即32bitui

64位 == x64    二者的主要區別即硬件CPU上,固然,也有的軟件在二者上存在些微區別,大多數已經都支持64位了。

初學者,通常建議使用32位的python2.7版本最好,一來支持的庫豐富,二來不用擔憂硬件不能支持,三來功能相對來講是更經濟適用的,學會了2.0版本後,再去學習3.0版本就會很快。

 

源碼的主要格式有如下5種:

1.【.tar】  2.【.gz】  3.【.zip】  4.【.7z】  5.【.tar.xz】

 

要將python的安裝路徑添加至環境變量Path中去。

 

在設置保存路徑時,儘可能使用英文、數字、下劃線,餘者皆不宜,由於容易在後期出現未知錯誤;尤爲不能使用空格,也儘可能不要使用漢字。

 

IDE:Integrated Development Environment。即集成開發環境。所謂集成,就是將一些相對獨立、分散的東西,聚合到一塊,使之方便調用。

 

Notepad++據做者李茂稱是個蠻好用的文本編輯器,筆者暫未試用,先不予評價。

一個好的文本編輯器,固然得支持語法高亮,固然要對多種編碼有比較好的支持,也最好有自動補全語法的功能。彷佛Notepad++都有這麼些功能。

不過,Notepad++的語法高亮須要本身根據所編輯的語言進行自定義設置,方法爲:語言-P-Python。

 

Windows下的CMD,即命令行工具Command Line。

在CMD中進入某個目錄的方法:

Win+R-鍵入「cmd」-Enter-鍵入該路徑所在盤符如「D:\」 -鍵入「cd[空格]路徑」。以下圖所示:

Python學習日記_《Python硬件編程實戰》筆記_Mr_Ouyang

 

【此處須要插入「CMD」圖片】 

Notepad++彷佛能夠直接用CMD打開該文件所在目錄,路徑:運行-OpenCurrentCmdDir。

彷佛能夠經過某種方法將用CMD打開目錄這個指令集成到右鍵菜單中,回頭得空要去試一試。

 

在CMD中,若是已經進入了該文件所在目錄,那麼爲了運行該文件,必然須要將其文件名打出來,若是一個一個打,則未免過於浪費時間,CMD中有一個自動補全文件名的功能,那就是Tab鍵,若是該文件所在路徑只有那一個文件,暫時叫它「Hello.py」,那麼咱們只須要鍵入「H」,而後再按一下Tab鍵,就能夠將文件名自動補全;若是存在多個文件,那麼能夠按屢次Tab鍵,直到補全的名字爲咱們所須要的文件名爲止。

 

在IDLE中一次性地複製粘貼多行代碼,極可能會報錯,估計是由於縮進不規範致使的。待檢驗。

 

Python、CMD等,適合較短、較簡單的代碼的運行和測試;大型一點的,須要用諸如IDLE、PyCharm來進行編輯,其中,進入IDLE的方法可能有必定講究,好比,若是直接雙擊其快捷方式進入,那麼可能界面和命令行CMD差很少,簡陋得很;若是是在py文件上右鍵選擇「Edit With IDLE」則直接進入一個比較成熟的GUI界面,很PyCharm差很少。

 

#!/usr/bin/python

#_*_ coding: utf-8 _*_

上述第一行,其中的【#!】特殊字符組合,被稱爲SheBang,目前我也不知道是個什麼意思,待查找;該行的做用是,若是Python看到了SheBang開頭的行,便會自動到後面所附的路徑下去尋找和運行對應的文件。

上述第二行,是一個編碼說明。若是沒有這個說明,那麼Python就會默認你使用的是ASCII編碼,也即只用這個編碼方案來處理你寫出來的代碼;問題就在於,若是你寫出來的代碼不知不覺間附加了某個非ASCII代碼,那麼Python就會報錯,這個時候就麻煩了。因此,最好加上這麼一行編碼說明,以便於讓Python來對號入座的處理你的代碼。

編碼說明所在的位置,只能在第一行或者第二行;即若是有SheBang語句,那麼就應該把編碼說明放在第二行,沒有的話就要放在第一行;如果放在其餘位置,則Python會認爲你不合規矩,也就不會聽你的話來給你好好地執行代碼了。基於此,最好對編碼方案有必定的瞭解,故此須要在接下來的日子學習Html的知識。

 

在Python中,縮進是很嚴格的,與其餘語言中的縮進做用不同,Python中採用縮進不只僅是爲了美觀的目的,而更是將其內在的代碼邏輯蘊含於此,也即在Python中,縮進決定了代碼的Context,若是縮進處理很差,就會報錯,畢竟Python無法從你的上下文中理解你的真實意圖了。通常由於縮進問題而報錯的類型是以下:

【IndentationError:unexpected indent】

另外,縮進後的代碼從屬於上一行那個函數,能夠將該函數下面的全部縮進的代碼稱爲一個代碼塊Code Block。

Def main():  #定義一個main函數,所謂main,即腳本的主模塊的名字,固然,咱們

#給這個主模塊起任何的名字

    Code Block  #代碼塊

If __name__==」__main__」:  #若是該模塊的名字爲主模塊名,那麼久運行下面的main(),

#也即上面的main的代碼塊

    main()

 

關於name的辨析:

若是name在模塊Modules中,則name爲模塊名;若是name在類Classes中,則name爲類名,也即主模塊名,固然,這只是我我的的理解,待檢驗。 

腳本的主模塊名字,叫作__main__。腳本在被當作模塊時,第一次被導入import後,系統會自動爲其建立一個域名空間namespace。

若是當前腳本被當作模塊被調用,則根據上面的辨析,咱們知道此事的name爲對應的模塊名,也即,此時是不符合if的判斷條件「name=main」的,因此就不會將main()執行;若是當前腳本被當作普通的腳本文件單獨運行,那麼此時該腳本就自動成爲主模塊了,畢竟就它一根獨苗了,此時自動知足if的判斷條件,也就會執行main()的函數了。

之因此在函數結尾處加入這麼一句判斷,緣由在於,調用這個腳本時,我只是把它當作工具來使用,而不注重它到底是個什麼內涵的玩意兒,我並不關心它有什麼「料」,打個比方,我調用「她」只不過是「玩玩而已」,咱們倆這樣「契合」只不過是各取所需,不但願對方「介入本身的生活,不要在本身的世界留下痕跡」,這樣,咱們就只須要將它做爲工具來調用,爲了達到這個目的,就應當加入這麼一句判斷了。

Self.value.name  #Instance.PropertyName,讀取、寫入實例的名稱值

Self.function()  #Instance.function(),執行對應的動做

若是沒有在Class的最初的__init__函數中正確的初始化實例變量,則會致使後續沒有變量可用,進而出現AttributeError,莫名想到了那句「後死無仇可雪」,哈哈!

 

好的變成風格,應該命名時有所規範,使得所命制之名能夠被一眼看出其做用,以便往後檢查、回顧時閱讀,如「name=Global News」這樣的,應該改成「gName=Global News」。

變量的做用域Variable Scope:

1.     全局變量Global Variable

2.     局部變量Automatic Variable

關於他倆的關係,暫時不是特別清楚,待往後學完再補充。

 

If條件判斷的幾種寫法:

(一)不帶Else或Elif

If condition:  #注意,在跑一趟Python中,凡是涉及判斷等語法的,都有在行末添加英文冒號

    Code-block

(二)帶上Else

If condition:

    If-body

Else:

    Else-body

(三)三者俱全

If if-condition:

    If-code-block

Elif condition-1:

    Code-block-1

Elif condition-2:

    Code-block-2

……

Else:

    Code-block-else

函數:

Python學習日記_《Python硬件編程實戰》筆記_Mr_Ouyang
 

【此處須要插入「函數圖片」】

 

下面是一個好的排版方式,值得學習,以下:

Author:     Mr_Ouyang

Version:    2.7.6

Contact:    ouyy15@qq.com

總結起來就是,先將第一列的那些類別名先寫出來,而後再從最長的那個入手,寫好,爾後用空格使得左右內容有一種對稱的美感,我的以爲蠻不錯。

 

交換變量值的方式:

(一)   其餘語言中的方法

temp=a

a=b

b=temp

#經過藉助temp這麼一箇中間變量,造成置換

(二)   Python中的方法,能夠稱之爲多變量賦值,效率賊高

b,a = a,b

c,a,b = a,b,c

z,y,x,…,c,b,a = a,b,c,…,x,y,z

#直接經過順序實現多變量的賦值,正如其名,賦值!直接將各變量賦值給須要置換的變量便可,此方法不限制個數,如上面第一行是兩個變量置換,接着是三個、二十六個變量置換。

 

切片Slice:經過索引來取得String的內容,自定義截取

如:

Text=」String」,以下圖所示,從S前面開始,算做索引號爲0處,S與t之間是索引號1,能夠看出,經過最多兩個索引號,即可以將字符截取出來,如經過0:1能夠將S截取出,以此類推。至於前面和後面的兩個符號「[:」與「:]」則是表示截取。下面給出截取的實例。

Python學習日記_《Python硬件編程實戰》筆記_Mr_Ouyang
【此處須要插入「索引」圖片】

Text[1:4]=trij  #正常截取方法

Text[:5]=Strin = text[0:5]  #能夠將首和尾的索引號省略,如此處將0省略了

Text[:-1]=Strin = text[0:-1] = text[0:len(text)-1]  #能夠用負數索引號,也即倒着數的索引號,如-1。Len能夠將放在括號內的參數的字符數計算出,好比len(text)就返回6,用len(text)減去某個數,也就等價於負的某個數,如此時的等價於-1。

Text[-4:]=ring = text[-4:len(text)]  #省略尾索引號

Text[2]=r = text[2:3]  #在只截取一個字符時,能夠只寫出該字符前面的索引號,而省略其後面那個索引號

Text[:]=String = text[0,len(text)]  #直接一個冒號,表明截取所有字符

Text[::-1]=gnirtS  #兩個冒號,表明根據後面的數字進行跨越截取,後面跟着的數字,爲步長值,正數則從前日後截取,負數則從後往前截取,如此處的表明從後往前截取,每次截取一個字符,故而獲得倒着的所有字符

Text[::2]=Srn  #倒着截取,步長值爲2,表明從前日後截取,每次跨越兩個字符,故而獲得正着的Srn,其實也就是至關於[0]+[2]+[4]截取的結果。

 

循環和枚舉:

(一)   其餘語言中的循環和枚舉

>>>print items

[‘zero’,’one’,’two’,’three’]

>>>index=0

For item in items:

    Print index,item

    Index +=1  #也即每次進行print操做後,都將Index+1賦值給Index

(二)   Python中的循環和枚舉

For I in range(len(items)):

    Print I,items[i]

或者是

Items=’zero one two three’.split()

For (index,item) in enumerate(items):

    Print index,item

#enumerate能夠直接生成(index,item)類型的元組Tuple變量

 

條件性賦值:

(一)兩個條件

Y=0

X=3 if (y==1) else 2

Print x

>>>2  #輸出結果爲2,由於y<>1,因此x爲2

(二)三個條件

Y=0

X=3 if (y==1) else 2 if (y==-1) else 1

Print x

>>>1  #輸出結果爲1,由於y<>1且y<>-1,因此x<>3且x<>2,只能等於1

 

開源軟件的特色:

開源;公開軟件的源代碼

共享;

Bug反饋;若是在共享使用過程當中,發現任何Bug,能夠及時與開發者反饋,方便軟件的改進

新添功能;用戶能夠將本身的成果添加進軟件,使得軟件愈來愈好

 

開源硬件:與開源軟件相似。

現行比較厲害的開源硬件有這麼幾種:Arduino,樹莓派,pcDuino。看書上寫的開源硬件能夠作到不少事情,好比溼度監測器、郵件控制車庫門升降等,之後要去試試看,聽說最高境界能夠用來控制機器人,待學習。

 

筆者本身在百度文庫找的Python2.6指南的中文翻譯教程。網址:

https://wenku.baidu.com/view/924e1edf50e2524de5187e53.html

相關文章
相關標籤/搜索