溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python的理由有哪些

發(fā)布時(shí)間:2021-11-20 09:29:15 來(lái)源:億速云 閱讀:109 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“使用Python的理由有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1. Python 讀起來(lái)像可執(zhí)行的偽代碼

偽代碼是這樣一種概念,它不遵循特定語(yǔ)言的確切句法和語(yǔ)法來(lái)編寫(xiě)編程邏輯。自從成為一名 Python  程序員以來(lái),我已經(jīng)幾乎不怎么編寫(xiě)偽代碼了,因?yàn)樗膶?shí)際設(shè)計(jì)滿足了我的需要。

即使您不太了解 Python 語(yǔ)言,也可以很容易地閱讀它,這在很大程度上是由設(shè)計(jì)決定的。

Python  對(duì)代碼格式中的空白規(guī)定是出了名的。空白對(duì)于任何語(yǔ)言都是必需的——它能夠讓我們區(qū)分出句子中不同的單詞。大多數(shù)語(yǔ)言都有關(guān)于空格用法的建議或“優(yōu)秀實(shí)踐”,但是  Python 大膽地要求標(biāo)準(zhǔn)化。對(duì)我來(lái)說(shuō),這使得閱讀代碼并準(zhǔn)確地看到它在做什么變得非常簡(jiǎn)單。

例如,下面是一個(gè) 經(jīng)典冒泡排序算法 的實(shí)現(xiàn)。

def bubble_sort(things):      needs_pass = True      while needs_pass:          needs_pass = False          for idx in range(1, len(things)):              if things[idx - 1] > things[idx]:                  things[idx - 1], things[idx] = things[idx], things[idx - 1]                  needs_pass = True

現(xiàn)在讓我們將其與 Java 中的實(shí)現(xiàn) 進(jìn)行比較。

public static int[] bubblesort(int[] numbers) {     boolean swapped = true;     for(int i = numbers.length - 1; i > 0 && swapped; i--) {         swapped = false;         for (int j = 0; j < i; j++) {             if (numbers[j] > numbers[j+1]) {                 int temp = numbers[j];                 numbers[j] = numbers[j+1];                 numbers[j+1] = temp;                 swapped = true;             }         }     }     return numbers; }

我知道 Python 需要縮進(jìn)來(lái)表示塊的嵌套。雖然我們的 Java 示例也很好地使用了縮進(jìn),但這不是必需的?;ɡㄌ?hào)決定塊的開(kāi)始和結(jié)束,而不是間隔。因?yàn)? Python 使用空格作為語(yǔ)法,所以在其他代碼中不需要開(kāi)始{和結(jié)束}符號(hào)。

Python 還避免了對(duì)分號(hào)的需求,分號(hào)是使其他語(yǔ)言可讀的 語(yǔ)法規(guī)則。讀起 Python  我感覺(jué)更舒服一些,它很像偽代碼,有時(shí)會(huì)讓我驚訝到都意識(shí)不到可運(yùn)行的代碼是什么樣的了!

2. Python 有強(qiáng)大的原函數(shù)

在編程語(yǔ)言設(shè)計(jì)中,原函數(shù)是最簡(jiǎn)單的可用元素。Python  易于閱讀這一事實(shí)并不意味著它是一種強(qiáng)大的語(yǔ)言,另一方面要?dú)w功于它對(duì)原函數(shù)的使用。我最喜歡的使 Python 既易于使用又高級(jí)的例子是它的生成器概念。

假設(shè)您有一個(gè)簡(jiǎn)單的二叉樹(shù)結(jié)構(gòu),包含  value、left、right。您希望按順序輕松地對(duì)其進(jìn)行迭代。您通常會(huì)尋找“小”元素,以便在找到正確的值時(shí)立即退出。到目前為止,這聽(tīng)起來(lái)很簡(jiǎn)單。然而,有很多種算法可以對(duì)元素進(jìn)行操作。

其他語(yǔ)言會(huì)讓你寫(xiě)一個(gè)訪問(wèn)者,這樣你可以在這個(gè)函數(shù)中判斷“這是正確的元素嗎?”你也可以在 Python 中這樣做,但你也不必一定這樣做。

def in_order(tree):      if tree is None:          return      yield from in_order(tree.left)      yield tree.value      yield from in_order(tree.right)

這個(gè)生成器函數(shù)將返回一個(gè)迭代器,如果在 for 循環(huán)中使用該迭代器,那么它將只執(zhí)行需要的部分,而不會(huì)執(zhí)行全部。這是很強(qiáng)大的。

3.Python 標(biāo)準(zhǔn)庫(kù)

Python 有一個(gè)很棒的標(biāo)準(zhǔn)庫(kù),其中隱藏了許多我以前不知道的寶貴內(nèi)容,直到我花時(shí)間 遍歷了所有可用  函數(shù)、常量、類(lèi)型等等的列表,我才有了大體的了解。我個(gè)人比較喜歡的是 itertools 模塊,但是更喜歡函數(shù)式編程模塊 (是的,Python  支持函數(shù)式編程!)。

拿你的技術(shù)面試官開(kāi)玩笑是很有趣的。例如,這有個(gè)應(yīng)對(duì) FizzBuzz 這個(gè)經(jīng)典面試問(wèn)題 的小妙招:

通過(guò)網(wǎng)絡(luò)搜索后會(huì)發(fā)現(xiàn)這并不是解決 FizzBuzz 的最直接的方法,但它確實(shí)很有趣!

除了趣味之外,itertools 模塊以及 heapq 和 functools 模塊都是 Python 實(shí)現(xiàn)中默認(rèn)提供的很有價(jià)值的東西。

4. Python 的生態(tài)系統(tǒng)是龐大的

對(duì)于標(biāo)準(zhǔn)庫(kù)中沒(méi)有的很多東西,有一個(gè)巨大的生態(tài)系統(tǒng)來(lái)支持新的  Pythonista,從令人興奮的包到專門(mén)針對(duì)該語(yǔ)言的文本編輯器插件都有。PyPi 上托管了大約 200,000 個(gè)項(xiàng)目  (在撰寫(xiě)本文時(shí)),而且項(xiàng)目數(shù)量還在不斷增加,每個(gè)人都可以使用這些工具:數(shù)據(jù)科學(xué)、異步框架、web 框架,或者只是一些使 遠(yuǎn)程自動(dòng)化 更簡(jiǎn)單的工具。

“使用Python的理由有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI