小白也能懂的 Python 入門(mén)指南(2)——Python 的天性稟賦

Python 天生就是一種致力于簡(jiǎn)單主義思想的編程語(yǔ)言,閱讀一個(gè)良好的 Python 程序就感覺(jué)像是在讀英語(yǔ)一樣流暢旁壮。對(duì)于極客來(lái)說(shuō)婿牍,它就像是一把“輕武器”侈贷,既便攜又鋒利,幾乎無(wú)所不能等脂。它的這種極簡(jiǎn)主義風(fēng)格以及強(qiáng)大潛力深受編程愛(ài)好者的喜愛(ài)俏蛮。Python使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身,這源于它的天性稟賦上遥。

python設(shè)計(jì)之初衷

1999年嫁蛇,Python開(kāi)發(fā)者Guido向DARPA組織提交了一條名為”Computer Programming For Everybody”的資金申請(qǐng),并說(shuō)明了他設(shè)計(jì)Python的初衷:

1.一門(mén)簡(jiǎn)單直觀的語(yǔ)言并與主要競(jìng)爭(zhēng)者一樣強(qiáng)大

2.開(kāi)源露该,以便任何人都可以為它做貢獻(xiàn)

3.代碼像純英語(yǔ)那樣容易理解

4.適用于短期開(kāi)發(fā)的日常任務(wù)

在Python社區(qū)睬棚,Guido被稱(chēng)為“仁慈的獨(dú)裁者”,Guido的哲學(xué)是:用一種方法解幼,最好是只有一種方法來(lái)做一件事抑党,如果面臨多種選擇,Python開(kāi)發(fā)者一般會(huì)拒絕花俏的語(yǔ)法撵摆,而選擇明確沒(méi)有或很少有歧義的語(yǔ)法底靠。

python設(shè)計(jì)目標(biāo)

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">python設(shè)計(jì)目標(biāo)</figcaption>

Python的天性

Python 是一種解釋型、交互式特铝、面向?qū)ο笫钪小⑦m用于初學(xué)者的語(yǔ)言。具有如下特點(diǎn):

1.易于學(xué)習(xí):Python有相對(duì)較少的關(guān)鍵字鲫剿,結(jié)構(gòu)簡(jiǎn)單鳄逾,和一個(gè)明確定義的語(yǔ)法,學(xué)習(xí)起來(lái)更加簡(jiǎn)單灵莲。

2.易于閱讀:Python代碼定義的更清晰雕凹。

3.易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。

4.一個(gè)廣泛的標(biāo)準(zhǔn)庫(kù):Python的最大的優(yōu)勢(shì)之一是豐富的庫(kù)政冻,跨平臺(tái)的枚抵,在UNIX,Windows和Macintosh兼容很好明场。

5.互動(dòng)模式:互動(dòng)模式的支持汽摹,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語(yǔ)言,互動(dòng)的測(cè)試和調(diào)試代碼片斷苦锨。

6.可移植:基于其開(kāi)放源代碼的特性逼泣,Python已經(jīng)被移植(也就是使其工作)到許多平臺(tái)嫌套。

7.可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫(xiě)一些不愿開(kāi)放的算法圾旨,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用魏蔗。

8.數(shù)據(jù)庫(kù):Python提供所有主要的商業(yè)數(shù)據(jù)庫(kù)的接口砍的。

9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。

10.可嵌入:你可以將Python嵌入到C/C++程序莺治,讓你的程序的用戶(hù)獲得"腳本化"的能力廓鞠。

Python的編程方式

  • 交互式:對(duì)每個(gè)輸入語(yǔ)句及時(shí)運(yùn)行結(jié)果,適合語(yǔ)法練習(xí)
  • 文件式:批量執(zhí)行一組語(yǔ)句并運(yùn)行結(jié)果谣旁,編程的主要方式

實(shí)例1:圓面積的計(jì)算(根據(jù)半徑r計(jì)算圓面積)

交互式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">交互式</figcaption>

文件式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">文件式</figcaption>

實(shí)例2:繪制一組同切圓

交互式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">交互式</figcaption>

文件式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">文件式</figcaption>

實(shí)例3:五角星繪制

交互式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">交互式</figcaption>

文件式

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">文件式</figcaption>

Python的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 簡(jiǎn)單 -- Python 是一種代表簡(jiǎn)單主義思想的語(yǔ)言床佳。閱讀一個(gè)良好的 Python 程序就感覺(jué)像是在讀英語(yǔ)一樣,盡管這個(gè)英語(yǔ)的要求非常嚴(yán)格榄审!Python 的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一砌们。它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身。

  • 易學(xué) -- 就如同你即將看到的一樣搁进,Python 極其容易上手浪感。前面已經(jīng)提到了,Python 有極其簡(jiǎn)單的語(yǔ)法饼问。

  • 免費(fèi)影兽、開(kāi)源 -- Python 是 FLOSS(自由/開(kāi)放源碼軟件)之一。簡(jiǎn)單地說(shuō)莱革,你可以自由地發(fā)布這個(gè)軟件的拷貝峻堰、閱讀它的源代碼、對(duì)它做改動(dòng)盅视、把它的一部分用于新的自由軟件中捐名。FLOSS 是基于一個(gè)團(tuán)體分享知識(shí)的概念。這是為什么 Python 如此優(yōu)秀的原因之一——它是由一群希望看到一個(gè)更加優(yōu)秀的 Python 的人創(chuàng)造并經(jīng)常改進(jìn)著的闹击。

  • 高層語(yǔ)言 -- 當(dāng)你用 Python 語(yǔ)言編寫(xiě)程序的時(shí)候桐筏,你無(wú)需考慮諸如如何管理你的程序使用的內(nèi)存一類(lèi)的底層細(xì)節(jié)。

  • 可移植性 -- 由于它的開(kāi)源本質(zhì)拇砰,Python 已經(jīng)被移植在許多平臺(tái)上(經(jīng)過(guò)改動(dòng)使它能夠工作在不同平臺(tái)上)梅忌。如果你小心地避免使用依賴(lài)于系統(tǒng)的特性,那么你的所有 Python 程序無(wú)需修改就可以在下述任何平臺(tái)上面運(yùn)行除破。這些平臺(tái)包括 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 開(kāi)發(fā)的 Android 平臺(tái)例书!

  • 解釋性 -- 這一點(diǎn)需要一些解釋赫蛇。 Python 語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼,你可以直接從源代碼運(yùn)行程序雾叭。在計(jì)算機(jī)內(nèi)部悟耘,Python 解釋器把源代碼轉(zhuǎn)換成稱(chēng)為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語(yǔ)言并運(yùn)行织狐。

編譯:將源代碼一次性轉(zhuǎn)換成目標(biāo)代碼的過(guò)程

編譯

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">編譯</figcaption>

解釋?zhuān)簩⒃创a逐條轉(zhuǎn)換成目標(biāo)代碼同時(shí)逐條運(yùn)行的過(guò)程

解釋

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">解釋</figcaption>

編譯和解釋的不同:編譯——一次性翻譯暂幼,之后不再需要源代碼(類(lèi)似英文翻譯);解釋——每次程序運(yùn)行時(shí)邊翻譯邊執(zhí)行(類(lèi)似實(shí)時(shí)的同聲傳譯)

  • 面向?qū)ο?/strong> -- Python 既支持面向過(guò)程的編程也支持面向?qū)ο蟮木幊桃破取T凇懊嫦蜻^(guò)程”的語(yǔ)言中旺嬉,程序是由過(guò)程或僅僅是可重用代碼的函數(shù)構(gòu)建起來(lái)的。在“面向?qū)ο蟆钡恼Z(yǔ)言中厨埋,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來(lái)的邪媳。與其他主要的語(yǔ)言如 C++ 和 Java 相比,Python 以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>

  • 可擴(kuò)展性 -- 如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開(kāi)荡陷,你可以把你的部分程序用 C 或 C++ 編寫(xiě)雨效,然后在你的 Python 程序中使用它們。

  • 豐富的庫(kù) -- Python 標(biāo)準(zhǔn)庫(kù)確實(shí)很龐大废赞。它可以幫助你處理各種工作徽龟,包括正則表達(dá)式、文檔生成唉地、單元測(cè)試据悔、線(xiàn)程传透、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)瀏覽器极颓、CGI朱盐、FTP、電子郵件菠隆、XML兵琳、XML-RPC、HTML浸赫、WAV 文件、密碼系統(tǒng)赃绊、GUI(圖形用戶(hù)界面)既峡、Tk 和其他與系統(tǒng)有關(guān)的操作。記住碧查,只要安裝了 Python运敢,所有這些功能都是可用的。這被稱(chēng)作 Python 的“功能齊全”理念忠售。除了標(biāo)準(zhǔn)庫(kù)以外传惠,還有許多其他高質(zhì)量的庫(kù),如 wxPython稻扬、Twisted 和 Python 圖像庫(kù)等等卦方。

  • 規(guī)范的代碼 -- Python 采用強(qiáng)制縮進(jìn)的方式使得代碼具有極佳的可讀性。

缺點(diǎn)

  • 運(yùn)行速度較慢泰佳,有速度要求的話(huà)盼砍,用 C++ 改寫(xiě)關(guān)鍵部分吧。
  • 國(guó)內(nèi)市場(chǎng)較小(國(guó)內(nèi)以 Python 來(lái)做主要開(kāi)發(fā)的逝她,目前只有一些 web2.0 公司)浇坐。但時(shí)間推移,目前很多國(guó)內(nèi)軟件公司黔宛,尤其是游戲公司近刘,也開(kāi)始規(guī)模使用他。
  • 中文資料匱乏(好的 Python 中文資料屈指可數(shù)臀晃,現(xiàn)在應(yīng)該變多了)觉渴。托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了徽惋,但入門(mén)級(jí)教材多疆拘,高級(jí)內(nèi)容還是只能看英語(yǔ)版。
  • 構(gòu)架選擇太多(沒(méi)有像 C# 這樣的官方 .net 構(gòu)架寂曹,也沒(méi)有像 ruby 由于歷史較短哎迄,構(gòu)架開(kāi)發(fā)的相對(duì)集中回右。Ruby on Rails 構(gòu)架開(kāi)發(fā)中小型web程序天下無(wú)敵)。不過(guò)這也從另一個(gè)側(cè)面說(shuō)明漱挚,python比較優(yōu)秀翔烁,吸引的人才多,項(xiàng)目也多旨涝。

更多干貨蹬屹,請(qǐng)關(guān)注“貪心科技AI”公眾號(hào)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末白华,一起剝皮案震驚了整個(gè)濱河市慨默,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弧腥,老刑警劉巖厦取,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異管搪,居然都是意外死亡虾攻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)更鲁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)霎箍,“玉大人,你說(shuō)我怎么就攤上這事澡为∑担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵媒至,是天一觀的道長(zhǎng)樊拓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)塘慕,這世上最難降的妖魔是什么筋夏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮图呢,結(jié)果婚禮上条篷,老公的妹妹穿的比我還像新娘。我一直安慰自己蛤织,他們只是感情好夭拌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布儿礼。 她就那樣靜靜地躺著酸休,像睡著了一般口蝠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摊鸡,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天绽媒,我揣著相機(jī)與錄音蚕冬,去河邊找鬼。 笑死是辕,一個(gè)胖子當(dāng)著我的面吹牛囤热,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播获三,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旁蔼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了疙教?” 一聲冷哼從身側(cè)響起棺聊,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贞谓,沒(méi)想到半個(gè)月后限佩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡经宏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年犀暑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驯击。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烁兰。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖徊都,靈堂內(nèi)的尸體忽然破棺而出沪斟,到底是詐尸還是另有隱情,我是刑警寧澤暇矫,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布主之,位于F島的核電站,受9級(jí)特大地震影響李根,放射性物質(zhì)發(fā)生泄漏槽奕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一房轿、第九天 我趴在偏房一處隱蔽的房頂上張望粤攒。 院中可真熱鬧,春花似錦囱持、人聲如沸夯接。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盔几。三九已至,卻和暖如春掩幢,著一層夾襖步出監(jiān)牢的瞬間逊拍,已是汗流浹背上鞠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留顺献,地道東北人旗国。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像注整,于是被迫代替她去往敵國(guó)和親能曾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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