1. 程式人生 > >Python學習之路-----初識Python

Python學習之路-----初識Python

Python的起源

創始人

        Python的創始人是吉多·範羅蘇姆(Guido van Rossum),在中國被親切地稱為“龜叔”,荷蘭人。他是一位數學家,同時也傾向於做計算機的工作,熱衷於程式設計。

背景

    Guido曾使用過Pascal、C、Fortran等,這些語言的設計原則是讓機器能更快地執行。以C語言為例,用C語言實現一個功能需要編寫大量的程式碼,很耗費時間,這種程式設計方式使得他極度苦惱。當然,另一種選擇是shell。shell作為UNIX系統的直譯器已經長期存在,UNIX的管理員們常常用shell去寫一些簡單的指令碼,以進行一些系統維護的工作,比如定期備份、檔案系統管理等等。許多需要幾百行C語言程式才能實現的功能,在shell下只用幾行就可以完成。然而,shell的本質是呼叫命令。它並不是一個真正的語言。比如說,shell沒有數值型的資料型別,加法運算都很複雜。總之,shell不能全面的調動計算機的功能。

誕生    

   Guido希望有一種語言,這種語言能夠像C語言那樣,能夠全面呼叫計算機的功能介面,又可以像shell那樣,可以輕鬆的程式設計。1989年,為了打發聖誕節假期,Guido開始寫Python語言的編譯器。    1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠呼叫C語言的庫檔案。從一出生,Python已經具有了 :類,函式,異常處理,包含表和詞典在內的核心資料型別,以及模組為基礎的拓展系統。
    Python從一開始就特別在意可拓展性。Python可以在多個層次上拓展。從高層上,你可以直接引入. py檔案。在底層,你可以引用C語言的庫。Python程式設計師可以快速的使用Python寫. py檔案作為拓展模組。但當效能是考慮的重要因素時,Python程式設計師可以深入底層,寫C程式,編譯為.so檔案引入到Python中使用。Python就好像是使用鋼構建房一樣,先規定好大的框架。而程式設計師可以在此框架下相當自由的拓展或更改。

Python直譯器及版本

  • Python的直譯器如今有多個語言實現,我們常用的是CPython(官方版本的C語言實現),其他還有Jython(可以執行在Java平臺)、IronPython(可以執行在.NET和Mono平臺)、PyPy(Python實現的,支援JIT即時編譯)
  • Python目前有兩個版本,Python2和Python3,最新版分別為2.7.14和3.6.4

  • 2018年1月份 程式語言流行排行榜
       

Python的優缺點

優點

  • 簡單————Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!Python的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。

  • 易學————就如同你即將看到的一樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。

  • 免費、開源————Python是FLOSS(自由/開放原始碼軟體)之一。簡單地說,你可以自由地釋出這個軟體的拷貝、閱讀它的原始碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。這是為什麼Python如此優秀的原因之一——它是由一群希望看到一個更加優秀的Python的人創造並經常改進著的。

  • 高層語言————當你用Python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節。

  • 可移植性————由於它的開源本質,Python已經被移植在許多平臺上(經過改動使它能夠工作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程式無需修改就可以在下述任何平臺上面執行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基於linux開發的Android平臺!

  • 解釋性————這一點需要一些解釋。一個用編譯性語言比如C或C++寫的程式可以從原始檔(即C或C++語言)轉換到一個你的計算機使用的語言(二進位制程式碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。當你執行你的程式的時候,連線/轉載器軟體把你的程式從硬碟複製到記憶體中並且執行。而Python語言寫的程式不需要編譯成二進位制程式碼。你可以直接從原始碼執行程式。在計算機內部,Python直譯器把原始碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並執行。事實上,由於你不再需要擔心如何編譯程式,如何確保連線轉載正確的庫等等,所有這一切使得使用Python更加簡單。由於你只需要把你的Python程式拷貝到另外一臺計算機上,它就可以工作了,這也使得你的Python程式更加易於移植。

  • 面向物件————Python既支援面向過程的程式設計也支援面向物件的程式設計。在“面向過程”的語言中,程式是由過程或僅僅是可重用程式碼的函式構建起來的。在“面向物件”的語言中,程式是由資料和功能組合而成的物件構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向物件程式設計。

  • 可擴充套件性————如果你需要你的一段關鍵程式碼執行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。

  • 豐富的庫————Python標準庫確實很龐大。它可以幫助你處理各種工作,包括正則表示式、文件生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形使用者介面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理念。除了標準庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python影象庫等等。

  • 規範的程式碼————Python採用強制縮排的方式使得程式碼具有極佳的可讀性。

缺點

  1. 執行速度,有速度要求的話,用C++改寫關鍵部分吧。
  2. 國內市場較小(國內以python來做主要開發的,目前只有一些web2.0公司)。但時間推移,目前很多國內軟體公司,尤其是遊戲公司,也開始規模使用他。
  3. 中文資料匱乏(好的python中文資料屈指可數)。託社群的福,有幾本優秀的教材已經被翻譯了,但入門級教材多,高階內容還是隻能看英語版。
  4. 構架選擇太多(沒有像C#這樣的官方.net構架,也沒有像ruby由於歷史較短,構架開發的相對集中。Ruby on Rails 構架開發中小型web程式天下無敵)。不過這也從另一個側面說明,python比較優秀,吸引的人才多,專案也多。

相關推薦

Python學習-----初識Python

Python的起源創始人        Python的創始人是吉多·範羅蘇姆(Guido van Rossum),在中國被親切地稱為“龜叔”,荷蘭人。他是一位數學家,同時也傾向於做計算機的工作,熱衷於程式設計。背景    Guido曾使用過Pascal、C、Fortran等,

python學習 初識xml

int .cn python code ear request 初識 webxml utf-8 import requests from xml.etree import ElementTree as ET r = requests.get(‘http://www.web

記錄Python學習-----------------------------《Python程式設計入門到實踐》作業習題合集 ====接上一章

接上一章連結如下: https://blog.csdn.net/shinhwa96/article/details/83373902 #-*-coding:GBK-*- #-*-coding:utf-8-*- #7-4 pizza_peiliao="請您輸入pizza配料:" messa

記錄Python學習----------------------------------------《Python程式設計入門到實踐》作業合集二

上一章是第4章與第五章的習題。這章主要是第六章和第七章的習題,第六章主要是字典,第七章是使用者輸入和while迴圈。 #-*-coding:GBK-*- #-*-coding:utf-8-*- #6-1 person = { 'first_name' : 'wang', 'l

記錄python學習------------------------《python程式設計從入門到實踐》作業合集

每天只更新學習的內容,今天就更新作業吧。做個勤奮的樓主 4-1因為我沒有寫pizza,選擇的自己喜歡的顏色。 #-*-coding:GBK-*- #-*-coding:utf-8-*- #4-1 colors=['orange','blue','red','black'] for col

Python學習(二)----Python的執行方式

前面我們已經在window環境下安裝好了我們的Python(地址:https://blog.csdn.net/qq_34584694/article/details/81566288),現在我們來學習Python的幾種執行方式。其主要分為REPL(read,eval,print,loop)和Py

Python學習(一)----python和pycharm的安裝和首次使用

一、Pyhton的安裝:     1.(python官網下載地址)https://www.python.org/downloads/windows/    選擇自己需要的版本,這裡只是舉個例子(開啟來可能會比較慢) 2.下載完後,雙擊安裝

python學習Day1:模塊初識

技術 執行 sys mage 需要 安裝 file com logs 模塊:寫好的代碼封裝好後可以直接調用 模塊可以叫做庫,分為標準庫和第三方庫 標準庫不需要安裝可以直接導入; 第三方庫需要安裝後才能導入; 標準庫:sys、os 第三方庫一般都安裝在C:\\Program

Python學習基礎篇--09Python基礎,初識函數

是什麽 上一個 def 不常用 *args none 它的 動態參數 ... 函數可以分為內置函數 和 自定義函數。這次關註的主要是自定義函數。定義函數之後,就可以在任何需要它的地方調用。 1 返回值的重要性   返回值的3種情況      沒有返回值 ---- 返回Non

python學習(四)

[1] size class dex epc uri msu 語句 這就是 繼續昨天的學習,學到了數組。 首先有兩個數組,name1和name2.我們可以將兩個數組合並 name1=[1,2,3,4] name2=[5,6,7,8] names=name1.extend(

Python學習 002

else 內容 readline input rjust price info class 信息   今天寫著購物車的作業,最頭疼的是文件操作了 尤其是文件的打開模式  w  r  a  最TM的頭疼 r+模式可讀可寫,但是寫的內容會根據文件指針去覆蓋之前的內容,當文件

Python學習——基礎04篇

usr pre Coding color 偶數求和 存在 代碼 spa nbsp   在python中,有很強大的for循環和很強大的數組操作,一些在其他語言中復雜的代碼,在python中可以一行解決,下面是python中解決a,b數組所有偶數求和,存在c數組中的簡單代碼。

Python學習——基礎01篇

alt 自動 clj int jca 安裝完成 -s 但是 還需                                 安裝python編譯環境   python數字定義是不需要int,double的,但是數據本身還是包含這些類型,這裏是我在學習pytho

Python學習——基礎07篇

get pytho print cnblogs python學習 code class end bsp   在Python中,數組也是不需要定義的,但是我們可以事先申明,可以用append的方法來動態增加數組空間,也可以使用range來給數組大小添個集合,這一篇先用appe

Python學習——第二彈(認識python

內容 代碼結構 計算 戰術 個人 方法 十分 現在 目的   第一彈中我是說明了學習python的目的,主要為了自我提升的考慮,那麽為什麽我對python感興趣,python有什麽用了?本章就簡單說明下。   python的用途很廣,而且代碼十分簡潔,不像java、c等其他

Python初識Python

containe out width pri lin 創建 大數據 集成 最新 Python簡介 Python前世今生 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間

python學習——第三彈 (作業篇第一題)

image 操作 啟動程序 代碼 color 鎖定文件 文件 文件內容 數據 作業一:編寫登錄接口1.輸入用戶名密碼2.認證成功後顯示歡迎信息3.輸錯三次後鎖定。 所需知識點 文件基本讀寫操作,循環,列表,字典 上面的作業題是在學習完數據類型和簡單的文件操作之後布置的,

Python學習6?函數,遞歸,內置函數

erro memory 子程序 none 種類 lan 萬年 字典 得到 一python中的函數 函數是邏輯結構化和過程化的一種編程方法。 python中函數定義方法: def test(x): "The function definitions" x

Python學習8?叠代器協議和生成器

rep 好處 obj 必須 決定 內容 cnblogs 有用 pri 一 什麽是叠代器協議 1.叠代器協議是指:對象必須提供一個next方法,執行該方法要麽返回叠代中的下一項,要麽就引起一個StopIteration異常,以終止叠代 (只能往後走不能往前退) 2.可叠代對象

python學習(三)使用socketserver進行ftp斷點續傳

def += __init__ con 不存在 不為 local 接收 class 最近學習python到socketserver,本著想試一下水的深淺,采用Python3.6. 目錄結構如下: receive_file和file為下載或上傳文件存放目錄,ftp_clie