一、python簡(jiǎn)介

  • 一巢价、python介紹
    • 創(chuàng)始人
      python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)固阁。1989年的圣誕節(jié)期間,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時(shí)間备燃,決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,作為ABC語(yǔ)言的一種繼承凌唬。
      Python可以應(yīng)用于眾多領(lǐng)域,如:數(shù)據(jù)分析客税、組件集成、網(wǎng)絡(luò)服務(wù)更耻、圖像處理、數(shù)值計(jì)算和科學(xué)計(jì)算等眾多領(lǐng)域秧均。目前業(yè)內(nèi)幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,如:Youtube目胡、Dropbox锯七、BT誉己、Quora(知乎就是模仿它的)、豆瓣巨双、知乎、Google炉峰、Yahoo!、Facebook疼阔、NASA、百度婆廊、騰訊、汽車(chē)之家淘邻、美團(tuán)等。

    • 目前Python主要應(yīng)用領(lǐng)域:
      云計(jì)算: 云計(jì)算最火的語(yǔ)言湘换, 典型應(yīng)用OpenStack
      WEB開(kāi)發(fā): 眾多優(yōu)秀的WEB框架统阿,眾多大型網(wǎng)站均為Python開(kāi)發(fā)筹我,Youtube, Dropbox, 豆瓣。蔬蕊。结澄。麻献, 典型WEB框架有Django
      科學(xué)運(yùn)算、人工智能: 典型庫(kù)NumPy, SciPy, Matplotlib, Enthought librarys,pandas
      系統(tǒng)運(yùn)維: 運(yùn)維人員必備語(yǔ)言
      金融:量化交易猜扮,金融分析,在金融工程領(lǐng)域旅赢,Python不但在用,且用的最多鲜漩,而且重要性逐年提高。原因:作為動(dòng)態(tài)語(yǔ)言的Python孕似,語(yǔ)言結(jié)構(gòu)清晰簡(jiǎn)單踩娘,庫(kù)豐富喉祭,成熟穩(wěn)定,科學(xué)計(jì)算和統(tǒng)計(jì)分析都很牛逼泛烙,生產(chǎn)效率遠(yuǎn)遠(yuǎn)高于c,c++,java,尤其擅長(zhǎng)策略回測(cè)
      圖形GUI: PyQT, WxPython,TkInter

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

  • 二、Python 是一門(mén)什么樣的語(yǔ)言埂软?
    python是一門(mén)動(dòng)態(tài)解釋性的強(qiáng)類型定義語(yǔ)言。
    • 編譯型與解釋型
      編譯是將源程序翻譯成可執(zhí)行的目標(biāo)代碼勘畔,翻譯與執(zhí)行是分開(kāi)的;而解釋是對(duì)源程序的翻譯與執(zhí)行一次性完成炫七,不生成可存儲(chǔ)的目標(biāo)代碼爬立。這只是表象万哪,二者背后的最大區(qū)別是:對(duì)解釋執(zhí)行而言,程序運(yùn)行時(shí)的控制權(quán)在解釋器而不在用戶程序壤圃;對(duì)編譯執(zhí)行而言,運(yùn)行時(shí)的控制權(quán)在用戶程序伍绳。
      解釋具有良好的動(dòng)態(tài)特性和可移植性乍桂,比如在解釋執(zhí)行時(shí)可以動(dòng)態(tài)改變變量的類型效床、對(duì)程序進(jìn)行修改以及在程序中插入良好的調(diào)試診斷信息等,而將解釋器移植到不同的系統(tǒng)上剩檀,則程序不用改動(dòng)就可以在移植了解釋器的系統(tǒng)上運(yùn)行。同時(shí)解釋器也有很大的缺點(diǎn)旺芽,比如執(zhí)行效率低,占用空間大采章,因?yàn)椴粌H要給用戶程序分配空間,解釋器本身也占用了寶貴的系統(tǒng)資源悯舟。
      編譯器是把源程序的每一條語(yǔ)句都編譯成機(jī)器語(yǔ)言,并保存成二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語(yǔ)言來(lái)運(yùn)行此程序,速度很快;
      而解釋器則是只在執(zhí)行程序時(shí),才一條一條的解釋成機(jī)器語(yǔ)言給計(jì)算機(jī)來(lái)執(zhí)行,所以運(yùn)行速度是不如編譯后的程序運(yùn)行的快的.
      編譯型

      • 優(yōu)點(diǎn):編譯器一般會(huì)有預(yù)編譯的過(guò)程對(duì)代碼進(jìn)行優(yōu)化。因?yàn)榫幾g只做一次抵怎,運(yùn)行時(shí)不需要編譯,所以編譯型語(yǔ)言的程序執(zhí)行效率高反惕〕⑺遥可以脫離語(yǔ)言環(huán)境獨(dú)立運(yùn)行姿染。
      • 缺點(diǎn):編譯之后如果需要修改就需要整個(gè)模塊重新編譯。編譯的時(shí)候根據(jù)對(duì)應(yīng)的運(yùn)行環(huán)境生成機(jī)器碼盔粹,不同的操作系統(tǒng)之間移植就會(huì)有問(wèn)題,需要根據(jù)運(yùn)行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件舷嗡。
        解釋型
      • 優(yōu)點(diǎn):有良好的平臺(tái)兼容性,在任何環(huán)境中都可以運(yùn)行进萄,前提是安裝了解釋器(虛擬機(jī))捻脖。靈活中鼠,修改代碼的時(shí)候直接修改就可以,可以快速部署援雇,不用停機(jī)維護(hù)。
    • 缺點(diǎn):每次運(yùn)行的時(shí)候都要解釋一遍,性能上不如編譯型語(yǔ)言具温。

    • 動(dòng)態(tài)語(yǔ)言和靜態(tài)語(yǔ)言
      通常我們所說(shuō)的動(dòng)態(tài)語(yǔ)言、靜態(tài)語(yǔ)言是指動(dòng)態(tài)類型語(yǔ)言和靜態(tài)類型語(yǔ)言铣猩。

      • (1)動(dòng)態(tài)類型語(yǔ)言:動(dòng)態(tài)類型語(yǔ)言是指在運(yùn)行期間才去做數(shù)據(jù)類型檢查的語(yǔ)言,也就是說(shuō)达皿,在用動(dòng)態(tài)類型的語(yǔ)言編程時(shí),永遠(yuǎn)也不用給任何變量指定數(shù)據(jù)類型峦椰,該語(yǔ)言會(huì)在你第一次賦值給變量時(shí)龄寞,在內(nèi)部將數(shù)據(jù)類型記錄下來(lái)们何。Python和Ruby就是一種典型的動(dòng)態(tài)類型語(yǔ)言,其他的各種腳本語(yǔ)言如VBScript也多少屬于動(dòng)態(tài)類型語(yǔ)言冤竹。
      • (2)靜態(tài)類型語(yǔ)言:靜態(tài)類型語(yǔ)言與動(dòng)態(tài)類型語(yǔ)言剛好相反,它的數(shù)據(jù)類型是在編譯其間檢查的鹦蠕,也就是說(shuō)在寫(xiě)程序時(shí)要聲明所有變量的數(shù)據(jù)類型,C/C++是靜態(tài)類型語(yǔ)言的典型代表钟病,其他的靜態(tài)類型語(yǔ)言還有C#萧恕、JAVA等肠阱。
    • 強(qiáng)類型定義語(yǔ)言和弱類型定義語(yǔ)言
      強(qiáng)類型定義語(yǔ)言在速度上可能略遜色于弱類型定義語(yǔ)言,但是強(qiáng)類型定義語(yǔ)言帶來(lái)的嚴(yán)謹(jǐn)性能夠有效的避免許多錯(cuò)誤屹徘。另外,“這門(mén)語(yǔ)言是不是動(dòng)態(tài)語(yǔ)言”與“這門(mén)語(yǔ)言是否類型安全”之間是完全沒(méi)有聯(lián)系的噪伊!
      例如:Python是動(dòng)態(tài)語(yǔ)言,是強(qiáng)類型定義語(yǔ)言(類型安全的語(yǔ)言); VBScript是動(dòng)態(tài)語(yǔ)言鉴吹,是弱類型定義語(yǔ)言(類型不安全的語(yǔ)言); JAVA是靜態(tài)語(yǔ)言,是強(qiáng)類型定義語(yǔ)言(類型安全的語(yǔ)言)豆励。

      • (1)強(qiáng)類型定義語(yǔ)言:強(qiáng)制數(shù)據(jù)類型定義的語(yǔ)言夺荒。也就是說(shuō),一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類型在孝,如果不經(jīng)過(guò)強(qiáng)制轉(zhuǎn)換诚啃,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類型了。舉個(gè)例子:如果你定義了一個(gè)整型變量a,那么程序根本不可能將a當(dāng)作字符串類型處理始赎。強(qiáng)類型定義語(yǔ)言是類型安全的語(yǔ)言和橙。
      • (2)弱類型定義語(yǔ)言:數(shù)據(jù)類型可以被忽略的語(yǔ)言造垛。它與強(qiáng)類型定義語(yǔ)言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類型的值。
  • 三办斑、Python的優(yōu)缺點(diǎn)

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

    • 再看缺點(diǎn):
      速度慢,Python 的運(yùn)行速度相比C語(yǔ)言確實(shí)慢很多削樊,跟JAVA相比也要慢一些豁生,因此這也是很多所謂的大牛不屑于使用Python的主要原因漫贞,但其實(shí)這里所指的運(yùn)行速度慢在大多數(shù)情況下用戶是無(wú)法直接感知到的,必須借助測(cè)試工具才能體現(xiàn)出來(lái)绕辖,比如你用C運(yùn)一個(gè)程序花了0.01s,用Python是0.1s,這樣C語(yǔ)言直接比Python快了10倍,算是非常夸張了仪际,但是你是無(wú)法直接通過(guò)肉眼感知的,因?yàn)橐粋€(gè)正常人所能感知的時(shí)間最小單位是0.15-0.4s左右树碱,哈哈肯适。其實(shí)在大多數(shù)情況下Python已經(jīng)完全可以滿足你對(duì)程序速度的要求成榜,除非你要寫(xiě)對(duì)速度要求極高的搜索引擎等,這種情況下赎婚,當(dāng)然還是建議你用C去實(shí)現(xiàn)的。
      代碼不能加密挣输,因?yàn)镻YTHON是解釋性語(yǔ)言,它的源碼都是以名文形式存放的撩嚼,不過(guò)我不認(rèn)為這算是一個(gè)缺點(diǎn)停士,如果你的項(xiàng)目要求源代碼必須是加密的,那你一開(kāi)始就不應(yīng)該用Python來(lái)去實(shí)現(xiàn)恋技。
      線程不能利用多CPU問(wèn)題,這是Python被人詬病最多的一個(gè)缺點(diǎn)蜻底,GIL即全局解釋器鎖(Global Interpreter Lock),是計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言解釋器用于同步線程的工具朱躺,使得任何時(shí)刻僅有一個(gè)線程在執(zhí)行刁赖,Python的線程是操作系統(tǒng)的原生線程长搀。在Linux上為pthread鸡典,在Windows上為Win thread,完全由操作系統(tǒng)調(diào)度線程的執(zhí)行彻况。一個(gè)python解釋器進(jìn)程內(nèi)有一條主線程,以及多條用戶程序的執(zhí)行線程纽甘。即使在多核CPU平臺(tái)上,由于GIL的存在悍赢,所以禁止多線程的并行執(zhí)行决瞳。關(guān)于這個(gè)問(wèn)題的折衷解決方法左权,我們?cè)谝院缶€程和進(jìn)程章節(jié)里再進(jìn)行詳細(xì)探討。
      當(dāng)然赏迟,Python還有一些其它的小缺點(diǎn),在這就不一一列舉了锌杀,我想說(shuō)的是,任何一門(mén)語(yǔ)言都不是完美的糕再,都有擅長(zhǎng)和不擅長(zhǎng)做的事情量没,建議各位不要拿一個(gè)語(yǔ)言的劣勢(shì)去跟另一個(gè)語(yǔ)言的優(yōu)勢(shì)來(lái)去比較亿鲜,語(yǔ)言只是一個(gè)工具冤吨,是實(shí)現(xiàn)程序設(shè)計(jì)師思想的工具,就像我們之前中學(xué)學(xué)幾何時(shí)漩蟆,有的時(shí)候需要要圓規(guī),有的時(shí)候需要用三角尺一樣妓蛮,拿相應(yīng)的工具去做它最擅長(zhǎng)的事才是正確的選擇。

  • 四蛤克、Python安裝

    • windows

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

      • 無(wú)需安裝,原裝Python環(huán)境
        ps:如果自帶2.6申眼,請(qǐng)更新至2.7
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市豺型,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姻氨,老刑警劉巖钓辆,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件前联,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡娶眷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)届宠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乘粒,“玉大人,你說(shuō)我怎么就攤上這事灯萍。” “怎么了每聪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)药薯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)童本,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任巾陕,我火速辦了婚禮,結(jié)果婚禮上鄙煤,老公的妹妹穿的比我還像新娘。我一直安慰自己茶袒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布薪寓。 她就那樣靜靜地躺著,像睡著了一般向叉。 火紅的嫁衣襯著肌膚如雪锥腻。 梳的紋絲不亂的頭發(fā)上母谎,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音奇唤,去河邊找鬼。 笑死咬扇,一個(gè)胖子當(dāng)著我的面吹牛甲葬,可吹牛的內(nèi)容都是我干的懈贺。 我是一名探鬼主播坡垫,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼画侣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起棉钧,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宪卿,沒(méi)想到半個(gè)月后的诵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體佑钾,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年休溶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兽掰。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖孽尽,靈堂內(nèi)的尸體忽然破棺而出窖壕,到底是詐尸還是另有隱情杉女,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布熏挎,位于F島的核電站速勇,受9級(jí)特大地震影響坎拐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廉白,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一个初、第九天 我趴在偏房一處隱蔽的房頂上張望猴蹂。 院中可真熱鬧院溺,春花似錦磅轻、人聲如沸珍逸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至漱病,卻和暖如春买雾,著一層夾襖步出監(jiān)牢的瞬間杨帽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工注盈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晃危,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓僚饭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胧砰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容