Python 的課程介紹

                                                         Python 的課程介紹
一、Python編程語言的排名(TIOBE連接:https://www.tiobe.com/tiobe-index/

 


二、編程語言分類。
  • Python(目前排名第四的語言)
          Python是一門優秀的綜合語言, Python的宗旨是簡明、優雅、強大,在人工智能、雲計算、金融分析、大數據開發、WEB開發、自動化運維、測試等方向應用普遍,已經是全球第4大最流行的語言。
  • JAVA(目前排名第一的語言):
         Java是一種能夠撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具備卓越的通用性、高效性、平臺移植性和安全性,普遍應用於我的PC、數據中心、遊戲控制檯、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。在全球雲計算和移動互聯網的產業環境下,Java更具有了顯著優點和廣闊前景。
  • C語言(目前排名第二的語言):
          C語言是一種計算機程序設計語言,它既具備高級語言的特色,又具備彙編語言的特色。C語言由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已前後被移植到大、中、小及微型機上,它能夠做爲工做系統設計語言,編寫系統應用程序,也能夠做爲應用程序設計語言,編寫不依賴計算機硬件的應用程序。
         C語言的應用範圍普遍,具有很強的數據處理能力,不只僅是在軟件開發上,並且各種科研都須要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用好比單片機以及嵌入式系統開發。
  • C++(目前排名第三的語言):
          C++ 是 C 語言的繼承的擴展,它既能夠進行C語言的過程化程序設計,又能夠進行以抽象數據類型爲特色的基於對象的程序設計,還能夠進行以繼承和多態爲特色的面向對象的程序設計。C++擅長面向對象程序設計的同時,還能夠進行基於過程的程序設計,於是C++就適應的問題規模而論,大小由之。
          C++ 不只擁有計算機高效運行的實用性特徵,同時還致力於提升大規模程序的編程質量與程序設計語言的問題描述能力。
  • PHP(目前排名第九的語言):
          PHP(英文名: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java 和 Perl 的特色,利於學習,使用普遍,主要適用於Web開發領域。


三、Python與其餘語言的區別:
  • C\C++:它的學習成本高,學習週期長,偏系統感層,在開發硬件驅動,嵌入式,遊戲引擎開發等領域有着普遍的應用。
  • JAVA:目前使用最普遍的語言,它是第一個跨平臺運行的語言,在大型 ERP 軟件開發,安卓APP 開發,網站開發領域使用普遍。
  • PHP:使用最普遍的 web 開發語言,很是適合中小型網站開發,學習成本較低,開發效率高。
  • PYTHON:使用領域幾乎和 JAVA 同樣普遍,可是它的開發效率要高於JAVA,而且學習成本較低,在科學運算、數據分析、網站開發、爬蟲開發、雲計算、自動化運維、自動化測試等領域優點明顯。


四、Python生態圈:
①WEB開發。
      最火的Python web框架Django, 支持異步高併發的Tornado框架,短小精悍的flask,bottle, Django官方的標語把Django定義爲the framework for perfectionist with deadlines(大意是一個爲徹底主義者開發的高效率web框架)。

②人工智能
      誰會成爲AI 和大數據時代的第一開發語言?這本已經是一個不須要爭論的問題。若是說三年前,Matlab、Scala、R、Java 和 Python還各有機會,局面尚且不清楚,那麼三年以後,趨勢已經很是明確了,特別是前兩天 Facebook 開源了 PyTorch 以後,Python 做爲 AI 時代頭牌語言的位置基本確立,將來的懸念僅僅是誰能坐穩第二把交椅。(人工智能的轉折點,在2014年,著名科學家――吳恩達)③雲計算
     目前最火最知名的雲計算框架就是OpenStack, Python 如今的火,很大一部分就是由於雲計算。(雲計算 是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問, 進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這些資源可以被快速提供,只需投入不多的管理工做,或與服務供應商進行不多的交互。例如,國內的「阿里雲」與雲谷公司的XenSystem,以及在國外已經很是成熟的Intel 和IBM。)

④金融分析
       公司寫的好多分析程序、高頻交易的軟件就是用的 Python,到目前,Python是金融分析、量化交易領域裏用的最多的語言。

⑤爬蟲
        爬蟲領域,Python幾乎是霸主地位,Scrapy、Request、BeautifuSoap、urllib等,想爬什麼就爬什麼。(網絡爬蟲,又被稱爲網頁蜘蛛、網絡機器人,在FOAF社區中間,更常常被稱爲網頁追逐者,是一種按照必定的規則,自動的抓取萬維網信息的程序或者腳本,已被普遍應用於互聯網領域。搜索引擎使用網絡爬蟲抓取Web網頁、文檔甚至圖片、音頻、視頻等資源,經過相應的索引技術組織這些信息,提供給搜索用戶進行查詢。網絡爬蟲也爲中小站點的推廣提供了有效的途徑。)

⑥自動化運維
       問問中國的每一個運維人員,運維人員必須會的語言是什麼?10我的相信會給你一個相同的答案,它的名字叫Python。

⑦科學運算
      從97年開始,NASA 就在大量使用 Python 在進行各類複雜的科學運算,隨着NumPy, SciPy, Matplotlib, Enthought librarys等衆多程序庫的開發,使的Python愈來愈適合於作科學計算、繪製高質量的2D和3D圖像。和科學計算領域最流行的商業軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用範圍更普遍。

⑧遊戲開發
       在網絡遊戲開發中Python也有不少應用。相比Lua or C++,Python 比 Lua 有更高階的抽象能力,能夠用更少的代碼描述遊戲業務邏輯,與 Lua 相比,Python 更適合做爲一種 Host 語言,即程序的入口點是在 Python 那一端會比較好,而後用 C/C++ 在很是必要的時候寫一些擴展。Python 很是適合編寫 1 萬行以上的項目,並且可以很好地把網遊項目的規模控制在 10 萬行代碼之內。另外,知名的遊戲<文明> 就是用Python寫的。

⑨網絡編程
     支持高併發的Twisted網絡框架, py3引入的asyncio使異步編程變的很是簡單。


五、應用Python的公司:

 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google廣告等項目都在大量使用Python開發。
  • CIA: 美國中情局網站就是用Python開發的。
  • NASA: 美國航天局(NASA)大量使用Python進行數據分析和運算。
  • YouTube:世界上最大的視頻網站You
  • Tube就是用Python開發的。
  • Dropbox:美國最大的在線雲存儲網站,所有用Python實現,天天網站處理10億個文件的上傳和下載。
  • Instagram:美國最大的圖片分享社交網站,天天超過3千萬張照片被分享,所有用python開發。
  • Facebook:大量的基礎庫均經過Python實現的。
  • Redhat:世界上最流行的Linux發行版本中的yum包管理工具就是用python開發的。
  • 豆瓣:公司幾乎全部的業務均是經過Python開發的。
  • 知乎:國內最大的問答社區,經過Python開發(國外Quora)。
  • 春雨醫生:國內知名的在線醫療網站是用Python開發的。

除上面以外,還有搜狐、金山、騰訊、盛大、網易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各類各樣的任務。

                                     
                                                                                              Python 編程語言介紹
一、編程的概念。
       編程,是個動詞,「編程」就等於「寫代碼」。寫代碼的目的就是爲了讓計算機作咱們想要讓它作的事情。因此若是咱們如今想要讓一臺電腦聽你的話去幹活,就得使用它可以理解的語言去讓它幹活。
      計算機只能理解「二進制」,也就是隻能使用「0」和「1」來與計算機進行交流。例如,010110100100010011。

 


二、機器語言&彙編語言。
  • 編程語言的分類:
              機器語言(Machine Language)
              彙編語言(Assembler Language)
              高級語言(High-level language)

①機器語言
        因爲計算機內部只接受二進制代碼,所以,用二進制代碼「1」和「0」描述的指令稱爲機器指令,所有機器指令的集合構成計算機的機器語言。
        機器語言屬於低級語言。
        輸出的程序全是些「0」和「1」的指令代碼,它的直觀性差,還容易出錯,除了計算機生產廠家的專業人員外,絕大多數的程序員已經再也不去學習機器語言了。機器是微處理器理解和使用的,監管機器語言好像是很複雜的,然而它是有規律的。
        存在着多至100000種機器語言的指令,這意味着不能把這些種類所有列出來。
        

 


②彙編語言
        彙編語言的實質和機器語言是相同的,他們都是直接對硬件操做,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。
        它一樣須要一個編程者將每一步具體的操做用命令的形式寫出來。彙編語言的每一句指令,只能對應實際操做過程當中的一個很細微的動做。例如移動、自增,所以彙編源程序通常比較冗長,複雜,容易出錯,並且使用匯編語言編程須要更多的計算機專業知識。
        可是彙編語言的優勢也是顯而易見的,用匯編語言所能完成的操做不是通常高級語言所可以實現的,並且源程序經彙編生成的可執行文件不只比較小,並且執行速度很快。
        彙編語言屬於低等語言。
        

 


③高級語言
        高級語言是大多數編程者的選擇。和彙編語言相比,它不但將許多相關的機器指令合成爲單條指令,而且去掉了與具體操做有關但與完成工做無關的細節,例如使用堆棧、寄存器等。這樣就大大的簡化了程序中的指令,同時,因爲省略了不少細節,編程者就不須要有太多的專業知識。
       高級語言主要是相對於彙編語言而言的,他並非一個特指某同樣具體的語言,而是包括了不少編程語言,例如 C、C++、JAVA、PHP、GO、Python等等都屬於高級語言。
       相比機器語言和彙編語言,高級語言對開發人員更加友好,在開發效率上有着大大的提升。
       
三、高級語言。
      不一樣的高級語言的區別在於轉變二進制的方式不一樣。
①高級語言的特徵:
 特徵一:計算機不能直接理解高級語言,只能直接理解機器語言,因此必需要把高級語言翻譯成機器語言,計算機纔可以去執行高級語言編寫的程序。 
特徵二:高級語言對開發人員友好,開發效率會更高。
 

 


②高級語言轉換方式的分類:
  • 高級語言――編譯型語言(Compiling Languages)
              程序在執行以前,須要將程序源代碼先「編譯」成目標程序(機器語言),所以他的目標程序能夠脫離其語言環境獨立執行(編譯生成的可執行文件是CPU能夠理解的二進制的機器碼組成的),使用比較方便,效率較高,但應用程序一旦須要修改,必須先修改源代碼,再從新編譯生成新的目標文件(*.cbj 也就是CBJ文件)才能夠執行,只有目標文件而沒有源代碼,修改比較麻煩。
             編譯後程序運行的時候不須要從新翻譯,以前使用編譯的結果就好了,程序執行效率高,依賴編譯器,跨平臺性差些,好比C/C++、vb、Delphi等高級語言。
          

 


  • 高級語言――解釋型語言(Interpreted Languages)
            也稱腳本語言,程序在執行的時候才翻譯成機器語言,每執行一次就要翻譯一次,所以執行效率比較低。因爲是在執行時才翻譯,能夠動態修改程序的屬性和方法,因此也可稱爲動態語言。因爲在執行時才翻譯,能夠調用不一樣的平臺的解釋器進行翻譯,作到一份代碼跨平臺應用。好比Perl、Ruby、Python等。

 


③程序設計語言從機器語言到高級語言的抽象,帶來的主要好處是:
       高級語言接近算法語言,易學、易掌握,通常工程技術人員只要幾周時間的培訓就能夠勝任程序員的工做;
       高級語言爲程序員提供告終構化程序設計的環境和工具,使得設計出來的程序可讀性好,可維護性強,可靠性高;
       高級語言遠離機器語言,與具體的計算機硬件關係不大,於是所寫出來的程序可移植性好,重用率高;
       因爲把繁雜瑣碎的事務交給了編譯程序去作,因此自動化程度高,開發週期短,且程序員獲得解脫,能夠集中時間和精力去從事對於他們來講更爲重要的創造性勞動,以提升程序的質量。
 

四、編程語言小結。
  • 機器語言:
          優勢是最底層,速度最快;
          缺點是最複雜,開發效率最低;
  • 彙編語言:
           優勢是比較底層,速度最快;
           缺點是複雜,開發效率最低;
  • 高級語言:
           編譯型語言優勢是執行速度快,不依賴語言環境運行;缺點是跨平臺性差。            解釋型語言優勢是跨平臺性好,一份代碼,處處使用;缺點是執行速度慢,依賴解釋器運行。  
相關文章
相關標籤/搜索