談談對Python的感想
寫在前面
我用Python已經好幾年了,最早學習用Python還是因為對人工神經網絡感興趣,python有個很好用的ANN庫neurolab。本人其實也算初學者,充其量算入門了吧,寫這篇一來回顧自己所學,二來振奮自己略有懶散的精神,學習不能停啊。
首先,Python是一門解釋性語言,這是他的特點,這讓Python似乎與“高效”無緣。然而你知道嗎,著名的Instagram服務器就是是用Python+Django搭建的,而且月活用戶超過7億。要知道Python+Django是一個以速度慢著稱的web框架,一定是python的某個優點深深的吸引了他們。是的,這個優點就是,開發效率高。
Python is a programming language that lets you work quickly and integrate systems more effectively.
--摘自Python官網www.python.org
Python就是這樣一門語言,它運行時不那麽“快”,但讓你在開發時一路狂飆。它有點反人類的縮進讓人抓狂,但同時簡潔的語法讓你一目十行。更何況,它還有成噸的庫,開箱即用,讓Python成為百變金剛,並且可以在所有主流平臺完美運行。可以說,沒有最好的語言,只有最合適的語言。
最近的TIOBE編程語言排行,Python已經到了第四位,3.777%,緊緊跟在C++之後。說到最近Python的興起,就不能不談人工智能的興起。人工智能如今進入第三次高潮,得益於深度學習Deep Learning技術的出現。隨著Theano、TensorFlow、Caffee等框架的出現,深度學習真正走入尋常百姓家,開啟了AI的大規模的應用。Python調用ML框架可以說過程完全無痛,而且快速高效。其腳本式開發方式,提供了快速試錯的能力,讓數據分析、處理、訓練時間都大大縮短了。可以說現在再來學習一遍Python正當時!
IDE方面,之前用過老牌python神器pycharm,不過現在有了另外一個選擇Visual Studio Code。這是一個由原Eclipse開發者開發的編輯器,其最大的特點是無限的擴展性,以及背後微軟老爹的支持。通過擴展,它能做幾乎所有語言的開發,而且小巧、快速,Windows和Mac上都有他。
我計劃通過一系列博文,重溫Python3基礎、進階知識,並結合VSCode的使用技巧,分享我做一些神經網絡方面的小東西的過程。圖個樂在其中,也讓更多人關註Python3,關註VSCode。
Python3的變量
今天就來開個頭,來個Python3的變量:
a = 1
這句定義了一個變量a,並將其值初始化為1。同時,變量a是整型。其他的類型包括浮點數、字符串、布爾(True/False)、空值(None)。Python是典型的動態類型語言,並且省略了類型的聲明。這有好處,使得開發更快更便捷,但缺點是變量的重名、拼寫錯誤也會造成意外的bug。當然有些第三方插件可以提示這些問題,但仍然要養成細心的習慣。
賦值:
b = a
這句聲明了一個新的變量b,令變量b的值等於a的值,也就是1。
是不是很簡單,來個小習題吧:
最後打印出來的是ABC還是XYZ呢?
如果從數學意義上理解,就會錯誤地得出b
和a
相同,也應該是‘XYZ‘
,但實際上b
的值是‘ABC‘
。
執行a = ‘ABC‘
,解釋器創建了字符串‘ABC‘
和變量a
,並把a
指向‘ABC‘(這類似於C/C++語言的指針)
:
執行b = a
,解釋器創建了變量b
,並把b
指向a
指向的字符串‘ABC‘
:
執行a = ‘XYZ‘
,解釋器創建了字符串‘XYZ‘,並把a
的指向改為‘XYZ‘
,但b
並沒有更改:
所以,最後打印變量b
的結果自然是‘ABC‘
了。
PS.這個題目摘自廖雪峰的網站:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000
談談對Python的感想