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

Python 天生就是一種致力于簡單主義思想的編程語言,閱讀一個良好的 Python 程序就感覺像是在讀英語一樣流暢。對于極客來說,它就像是一把“輕武器”,既便攜又鋒利,幾乎無所不能。它的這種極簡主義風(fēng)格以及強(qiáng)大潛力深受編程愛好者的喜愛。Python使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身,這源于它的天性稟賦。

python設(shè)計之初衷

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

1.一門簡單直觀的語言并與主要競爭者一樣強(qiáng)大

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

3.代碼像純英語那樣容易理解

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

在Python社區(qū),Guido被稱為“仁慈的獨裁者”,Guido的哲學(xué)是:用一種方法,最好是只有一種方法來做一件事,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法,而選擇明確沒有或很少有歧義的語法

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

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

Python的天性

Python 是一種解釋型、交互式、面向?qū)ο?、適用于初學(xué)者的語言。具有如下特點:

1.易于學(xué)習(xí):Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個明確定義的語法,學(xué)習(xí)起來更加簡單。

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

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

4.一個廣泛的標(biāo)準(zhǔn)庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。

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

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

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

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

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

10.可嵌入:你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。

Python的編程方式

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

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

交互式

<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>

實例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>

實例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)缺點

優(yōu)點

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

  • 易學(xué) -- 就如同你即將看到的一樣,Python 極其容易上手。前面已經(jīng)提到了,Python 有極其簡單的語法。

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

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

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

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

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

編譯

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

解釋:將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時逐條運(yùn)行的過程

解釋

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

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

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

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

  • 豐富的庫 -- Python 標(biāo)準(zhǔn)庫確實很龐大。它可以幫助你處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV 文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk 和其他與系統(tǒng)有關(guān)的操作。記住,只要安裝了 Python,所有這些功能都是可用的。這被稱作 Python 的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如 wxPython、Twisted 和 Python 圖像庫等等。

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

缺點

  • 運(yùn)行速度較慢,有速度要求的話,用 C++ 改寫關(guān)鍵部分吧。
  • 國內(nèi)市場較小(國內(nèi)以 Python 來做主要開發(fā)的,目前只有一些 web2.0 公司)。但時間推移,目前很多國內(nèi)軟件公司,尤其是游戲公司,也開始規(guī)模使用他。
  • 中文資料匱乏(好的 Python 中文資料屈指可數(shù),現(xiàn)在應(yīng)該變多了)。托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了,但入門級教材多,高級內(nèi)容還是只能看英語版。
  • 構(gòu)架選擇太多(沒有像 C# 這樣的官方 .net 構(gòu)架,也沒有像 ruby 由于歷史較短,構(gòu)架開發(fā)的相對集中。Ruby on Rails 構(gòu)架開發(fā)中小型web程序天下無敵)。不過這也從另一個側(cè)面說明,python比較優(yōu)秀,吸引的人才多,項目也多。

更多干貨,請關(guān)注“貪心科技AI”公眾號。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容