一、python簡介

  • 一、python介紹
    • 創(chuàng)始人
      python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的圣誕節(jié)期間,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時間,決心開發(fā)一個新的腳本解釋程序,作為ABC語言的一種繼承。
      Python可以應用于眾多領域,如:數(shù)據(jù)分析、組件集成、網(wǎng)絡服務、圖像處理、數(shù)值計算和科學計算等眾多領域。目前業(yè)內幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,如:Youtube、Dropbox、BT、Quora(知乎就是模仿它的)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。

    • 目前Python主要應用領域:
      云計算: 云計算最火的語言, 典型應用OpenStack
      WEB開發(fā): 眾多優(yōu)秀的WEB框架,眾多大型網(wǎng)站均為Python開發(fā),Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
      科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
      系統(tǒng)運維: 運維人員必備語言
      金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態(tài)語言的Python,語言結構清晰簡單,庫豐富,成熟穩(wěn)定,科學計算和統(tǒng)計分析都很牛逼,生產(chǎn)效率遠遠高于c,c++,java,尤其擅長策略回測
      圖形GUI: PyQT, WxPython,TkInter

    • Python在一些公司的應用:
      谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google廣告等項目都在大量使用Python開發(fā)
      CIA: 美國中情局網(wǎng)站就是用Python開發(fā)的
      NASA: 美國航天局(NASA)大量使用Python進行數(shù)據(jù)分析和運算
      YouTube:世界上最大的視頻網(wǎng)站YouTube就是用Python開發(fā)的
      Dropbox:美國最大的在線云存儲網(wǎng)站,全部用Python實現(xiàn),每天網(wǎng)站處理10億個文件的上傳和下載
      Instagram:美國最大的圖片分享社交網(wǎng)站,每天超過3千萬張照片被分享,全部用python開發(fā)
      Facebook:大量的基礎庫均通過Python實現(xiàn)的
      Redhat: 世界上最流行的Linux發(fā)行版本中的yum包管理工具就是用python開發(fā)的
      豆瓣: 公司幾乎所有的業(yè)務均是通過Python開發(fā)的
      知乎: 國內最大的問答社區(qū),通過Python開發(fā)(國外Quora)
      春雨醫(yī)生:國內知名的在線醫(yī)療網(wǎng)站是用Python開發(fā)的
      除上面之外,還有搜狐、金山、騰訊、盛大、網(wǎng)易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各種各樣的任務。

  • 二、Python 是一門什么樣的語言?
    python是一門動態(tài)解釋性的強類型定義語言。
    • 編譯型與解釋型
      編譯是將源程序翻譯成可執(zhí)行的目標代碼,翻譯與執(zhí)行是分開的;而解釋是對源程序的翻譯與執(zhí)行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背后的最大區(qū)別是:對解釋執(zhí)行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執(zhí)行而言,運行時的控制權在用戶程序。
      解釋具有良好的動態(tài)特性和可移植性,比如在解釋執(zhí)行時可以動態(tài)改變變量的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統(tǒng)上,則程序不用改動就可以在移植了解釋器的系統(tǒng)上運行。同時解釋器也有很大的缺點,比如執(zhí)行效率低,占用空間大,因為不僅要給用戶程序分配空間,解釋器本身也占用了寶貴的系統(tǒng)資源。
      編譯器是把源程序的每一條語句都編譯成機器語言,并保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;
      而解釋器則是只在執(zhí)行程序時,才一條一條的解釋成機器語言給計算機來執(zhí)行,所以運行速度是不如編譯后的程序運行的快的.
      編譯型

      • 優(yōu)點:編譯器一般會有預編譯的過程對代碼進行優(yōu)化。因為編譯只做一次,運行時不需要編譯,所以編譯型語言的程序執(zhí)行效率高。可以脫離語言環(huán)境獨立運行。
      • 缺點:編譯之后如果需要修改就需要整個模塊重新編譯。編譯的時候根據(jù)對應的運行環(huán)境生成機器碼,不同的操作系統(tǒng)之間移植就會有問題,需要根據(jù)運行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件。
        解釋型
      • 優(yōu)點:有良好的平臺兼容性,在任何環(huán)境中都可以運行,前提是安裝了解釋器(虛擬機)。靈活,修改代碼的時候直接修改就可以,可以快速部署,不用停機維護。
    • 缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

    • 動態(tài)語言和靜態(tài)語言
      通常我們所說的動態(tài)語言、靜態(tài)語言是指動態(tài)類型語言和靜態(tài)類型語言。

      • (1)動態(tài)類型語言:動態(tài)類型語言是指在運行期間才去做數(shù)據(jù)類型檢查的語言,也就是說,在用動態(tài)類型的語言編程時,永遠也不用給任何變量指定數(shù)據(jù)類型,該語言會在你第一次賦值給變量時,在內部將數(shù)據(jù)類型記錄下來。Python和Ruby就是一種典型的動態(tài)類型語言,其他的各種腳本語言如VBScript也多少屬于動態(tài)類型語言。
      • (2)靜態(tài)類型語言:靜態(tài)類型語言與動態(tài)類型語言剛好相反,它的數(shù)據(jù)類型是在編譯其間檢查的,也就是說在寫程序時要聲明所有變量的數(shù)據(jù)類型,C/C++是靜態(tài)類型語言的典型代表,其他的靜態(tài)類型語言還有C#、JAVA等。
    • 強類型定義語言和弱類型定義語言
      強類型定義語言在速度上可能略遜色于弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態(tài)語言”與“這門語言是否類型安全”之間是完全沒有聯(lián)系的!
      例如:Python是動態(tài)語言,是強類型定義語言(類型安全的語言); VBScript是動態(tài)語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態(tài)語言,是強類型定義語言(類型安全的語言)。

      • (1)強類型定義語言:強制數(shù)據(jù)類型定義的語言。也就是說,一旦一個變量被指定了某個數(shù)據(jù)類型,如果不經(jīng)過強制轉換,那么它就永遠是這個數(shù)據(jù)類型了。舉個例子:如果你定義了一個整型變量a,那么程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。
      • (2)弱類型定義語言:數(shù)據(jù)類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數(shù)據(jù)類型的值。
  • 三、Python的優(yōu)缺點

    • 先看優(yōu)點
      Python的定位是“優(yōu)雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復雜的程序。
      開發(fā)效率非常高,Python有非常強大的第三方庫,基本上你想通過計算機實現(xiàn)任何功能,Python官方庫里都有相應的模塊進行支持,直接下載調用后,在基礎庫的基礎上再進行開發(fā),大大降低開發(fā)周期,避免重復造輪子。
      高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節(jié)
      可移植性————由于它的開源本質,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工 作在不同平臺上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有Python程序無需修改就幾乎可以在市場上所有的系統(tǒng)平臺上運行
      可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。
      可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

    • 再看缺點:
      速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑于使用Python的主要原因,但其實這里所指的運行速度慢在大多數(shù)情況下用戶是無法直接感知到的,必須借助測試工具才能體現(xiàn)出來,比如你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常夸張了,但是你是無法直接通過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數(shù)情況下Python已經(jīng)完全可以滿足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種情況下,當然還是建議你用C去實現(xiàn)的。
      代碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現(xiàn)。
      線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用于同步線程的工具,使得任何時刻僅有一個線程在執(zhí)行,Python的線程是操作系統(tǒng)的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統(tǒng)調度線程的執(zhí)行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執(zhí)行線程。即使在多核CPU平臺上,由于GIL的存在,所以禁止多線程的并行執(zhí)行。關于這個問題的折衷解決方法,我們在以后線程和進程章節(jié)里再進行詳細探討。
      當然,Python還有一些其它的小缺點,在這就不一一列舉了,我想說的是,任何一門語言都不是完美的,都有擅長和不擅長做的事情,建議各位不要拿一個語言的劣勢去跟另一個語言的優(yōu)勢來去比較,語言只是一個工具,是實現(xiàn)程序設計師思想的工具,就像我們之前中學學幾何時,有的時候需要要圓規(guī),有的時候需要用三角尺一樣,拿相應的工具去做它最擅長的事才是正確的選擇。

  • 四、Python安裝

    • windows

      • 1、下載安裝包
        https://www.python.org/downloads/
      • 2、安裝
        默認安裝路徑:C:\python27
      • 3、配置環(huán)境變量
        【右鍵計算機】--》【屬性】--》【高級系統(tǒng)設置】--》【高級】--》【環(huán)境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
        如:原來的值;C:\python27,切記前面有分號
    • linux、Mac

      • 無需安裝,原裝Python環(huán)境
        ps:如果自帶2.6,請更新至2.7
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容