本文目錄一覽:
- 1、Python是什麼?
- 2、可以用 Python 編程語言做哪些神奇好玩的事情
- 3、python是什麼?
- 4、python是什麼樣的編程語言?
- 5、python背後是一項科技運動
- 6、什麼是Python編程語言
Python是什麼?
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum 於1990
年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨着版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python
也可用於可定製化軟件中的擴展程序語言。Python豐富的標準庫,提供了適用於各個主要系統平台的源碼或機器碼。
可以用 Python 編程語言做哪些神奇好玩的事情
機器學習,比如手寫字識別,人臉識別,垃圾郵件處理等。 當然還可以畫圖,和matlab類似,不過是工業級的。
也許最初設計 Python 這種語言的人並沒有想到今天Python 會在工業和科研上獲得如此廣泛的使用。著名的自由軟件作者Eric Raymond 在他的文章《如何成為一名黑客》中,將Python 列為黑客應當學習的四種編程語言之一,並建議人們從Python 開始學習編程。這的確是一個中肯的建議,對於那些從來沒有學習過編程或者並非計算機專業的編程學習者而言,Python 是最好的選擇之一。Python 第一次學習Python,我只用了不到二十分鐘的時間,站在書店裡把一本教初學編程的人學習Python 的書翻了一遍。也是從那時起,我開始被這種神奇的語言吸引。 Python 可以用來開發symbian 上的東西。 易用與速度的完美結合Python 是一種用起來很方便的語言,很多初學Java 的人都會被 Java 的CLASSPATH 搞得暈頭轉向,花上半天的時間才搞明白原來是CLASSPATH 搞錯了自己的 Hello World 才沒法運行。用Python 就不會有這種問題,只要裝上就能直接用。 Python 是一種腳本語言,寫好了就可以直接運行,省去了編譯鏈接的麻煩,對於需要多動手實踐的初學者而言,也就是少了出錯的機會。而且Python 還有一種交互的方式,如果是一段簡單的小程序,連編輯器都可以省了,直接敲進去就能運行。Python 是一種清晰的語言,用縮進來表示程序的嵌套關係可謂是一種創舉,把過去軟性的編程風格升級為硬性的語法規定。再不需要在不同的風格間選擇、再不需要為不同的風格爭執。與 Perl 不同,Python 中沒有各種隱晦的縮寫,不需要去強記各種奇怪的符號的含義。Python 寫的程序很容易懂,這是不少人的共識。Python 是一種面向對象的語言,但它的面向對象卻不象C++那樣強調概念,而是更注重實用。不是為了體現對概念的完整支持而把語言搞得很複雜,而是用最簡單的方法讓編程者能夠享受到面向對象帶來的好處,這正是 Python 能像 Java、C#那樣吸引眾多支持者的原因之一。 Python 是一種功能豐富的語言,它擁有一個強大的基本類庫和數量眾多的第三方擴展,使得Python 程序員無需去羨慕Java 的JDK。Python 為程序員提供了豐富的基本功能使得人們寫程序時用不着一切最底層做起。說到這裡,人們通常會用一種擔心:腳本語言通常很慢。腳本語言從運行的速度講的確會慢一些,但 Python 的速度卻比人們想像得快很多。雖然 Python 是一種腳本語言,但實際上也可以對它進行編譯,就象編譯Java 程序一樣將Python 程序編譯為一種特殊的ByteCode,在程序運行時,執行的是ByteCode,省去了對程序文本的分析解釋,速度自然提升很多。在用Java 編程是,人們崇尚一種Pure Java 的方式,除了虛擬機一切東西都用Java 編寫,無論是基本的數據結構還是圖形界面,而Pure Java 的SWING,卻成為無數Java 應用開發者的噩夢。Python 崇尚的是實用,它的整體環境是用C 來編寫的,很多基本的功能和擴展的模塊都是用 C/C++來編寫的,當執行這一部分代碼時,它的速度就是C 的速度。用Python 編寫的普通桌面程序,其啟動運行速度與用C 寫的程序差別不大。除了這些,通過一些第三方軟件包,用Python 編寫的源代碼還可以以類似JIT 的方式運行,而這可以大大提高Python 代碼的運行速度,針對不同類型的代碼,會有2 倍至100 倍不等的速度提升。 Python 是我見到過的語言中,在易用性和速度上結合的最完美的一個,通過喪失一點點經常可以忽略不計的運行速度從而獲得更高的編程效率,這就是我選擇Python 的原因。把精力放在要解決的問題上選擇一種合適的語言,才能讓你把有限的精力放到最需要解決的問題上。不同的語言有不同的作用,C 和彙編適合編寫系統軟件,如果用它們來編寫企業應用,恐怕沒幾個人能得心應手。我以前就碰到一個用彙編寫數據庫程序的哥,雖然最基本的功能完成了,但要增加個報表預覽什麼的,他就沒法應付了。聰明的程序員是用合適的工具去完成任務,想找一把萬能鑰匙是不太可能的。Python 的自動的垃圾回收機制是高級的編程語言的一種基本特性,用擁有這一功能的語言編程,程序員們通常不用去關心內存泄漏的問題,而當我們用 C/C++寫程序時,這卻是最重要的需要認真考慮卻又很容易出錯的問題之一。數據結構是程序構成的重要部分,鏈表、樹、圖這些在用C 編程時需要仔細表達的問題在Python 中簡單了很多。在Python 中,最基本的數據結構就是數組、序列和哈希表,用它們想要表達各種常見的數據結構是非常容易的。沒了定義指針、分配內存的任務,編程變得有趣了。CORBA 是一種高級的軟件體系結構,它是語言無關平台無關的。C++、Java 等語言都有CORBA 綁定,但與它們相比,Python 的 CORBA 綁定卻容易很多,因為在程序員看來,一個 CORBA 的類和 Python 的類用起來以及實現起來並沒有什麼差別。沒了複雜體系結構的困擾,用 Python 編寫CORBA 程序也變得容易了。好鋼要用在刀刃上,要想用有限的時間完成盡量多的任務,就要把各種無關的問題拋棄,而Python 恰恰提供了這種方法。跨平台又易擴展隨着Linux 的不斷成熟,越來越多的人轉到Linux 平台上工作,軟件的開發者自然就希望自己編寫的軟件可以在所有平台下運行。Java 一次編寫處處運行的口號使它成為跨平台的開發工具的典範,但其運行速度卻不被人們看好。實際上,幾乎所有的著名腳本語言都是跨平台的,Python 也不例外。
python是什麼?
Python [‘paiθɑ:n]英文發音似派森,因此中文可稱之為:派森。 具有腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用。它的名字來源於一個喜劇,也許最初設計Python這種語言的人並沒有想到今天Python會在工業和科研上獲得如此廣泛的使用。著名的自由軟件作者Eric Raymond在他的文章《如何成為一名黑客》中,將Python列為黑客應當學習的四種編程語言之一,並建議人們從Python開始學習編程。這的確是一個中肯的建議,對於那些從來沒有學習過編程或者並非計算機專業的編程學習者而言,Python是最好的選擇之一。
編輯本段作為編程語言的設計定位
雖然Python可能被粗略地分類為「腳本語言」(script language),但實際上一些大規模軟件開發計劃例如Zope、Mnet及BitTorrent,谷歌,facebook也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態編程語言,原因是「腳本語言」泛指僅作簡單編程任務的語言,如shell script、JavaScript等只能處理簡單任務的編程語言,並不能與Python相提並論。 此外,由於Python對於C和其他語言的良好支持,很多人還把Python作為一種「膠水語言」(glue language)使用。使用Python將其他語言編寫的程序進行集成和封裝。在谷歌內部的很多項目使用C++編寫性能要求極高的部分,然後用Python調用相應的模塊。
python是什麼樣的編程語言?
Python是一種跨平台的計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨着版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
Python還是一門解釋型的編程語言,Python也是面向對象的編程語言。對比其他編程語言來說,Python入門要簡單很多,更接近自然語言和正常思維方法,可以直接應用到工作中;當我們學習Python的時候非常容易上手,要比其他語言簡單很多,幾乎可以說是無所不能。
雖然Python體積小但是功能強大,可以做互聯網應用也可以做網站開發,靈活、易懂,開源。支持各種主流的操作系統,更加接近真實語言思維。在工業上Python被普遍使用快速建立概念模型,運行Python語言的產品已經成為了一種技術趨勢。而且Python擁有大量的開發庫,方便控制各種硬件,可以滿足不同場合需求。
使用Python進行項目開發的時候,代碼具有很高的可讀性,它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來非常的簡單整潔,要比其他的語言更好。
python背後是一項科技運動
比較官方的說法,python是一種解釋型語言,解釋型語言是指代碼一行一行的解釋執行,就好像有個 同聲傳譯 ,你每說一句話,他都能不間斷地給你翻譯,把你說的話(意指寫好的代碼)翻譯成機器能夠理解的語言。對於機器來說,這些翻譯後的語言就是機器語言,就是指令,機器收到指令後,就會根據指令執行對應的操作。
與解釋型語言相對的,有編譯型語言,編譯型語言則通過編譯器先將代碼翻譯成機器語言,再交給機器去執行。舉個例子,我方主持了一個會議,參會的分別有英國人、俄國人和西班牙人,他們三方都帶了自己的同聲傳譯。假如是解釋型語言呢,我在開會的時候用一種每個同聲傳譯都聽得懂的的語言,也就是一種官方用語。這樣我可以不間斷地用這種語言來做交流,因為這些翻譯人員都會為這三國參會人員同步翻譯成目標語言,你應該也注意到了,解釋型語言類似於一種通用的語言。而如果是編譯型語言呢,我會讓我這邊的3個翻譯人員將我的一份中文演講稿,分別翻譯成英文版的、俄文版的和西班牙語版的,在開會的時候,我只要交給參會的國際友人去翻閱就好了。解釋型語言側重的是一種通用的、能夠實時解釋翻譯的特性,而編譯型語言側重的是有針對性、提前準備的特性。然而,在開會的時候,解釋型效率是沒有那麼高的,因為需要同聲傳譯消耗時間去做翻譯,而編譯型的效率會高些,因為翻譯工作已經在開會前做好了,只需要參會人員理解並且執行就好。
1989年的聖誕節,荷蘭程序員Guido van Rossum( 吉多·范羅蘇姆 ,以下簡稱吉多)在家休假無聊,為了打發時間,他開發了一種新的解釋型語言。可見,該程序員無聊的時候,就是寫代碼。因為作者非常喜歡 Monty Python’s Flying Circus (巨蟒劇團之飛翔的馬戲團,這是英國的一個電視喜劇),就拿python作為這個新語言的名字。我想大家不一定都知道這部喜劇,但是可能都聽說過python,可能微信在幾天前給你推過python相關的培訓廣告,可能一些學校已經將掌握python基礎概念作為一門選修課,可能你的智能家居里的操作系統有一部分核心代碼是用python實現的,可能你的手機里有一個插件也是用python實現的,python現在的應用範圍非常廣泛,功能也非常強大。
吉多之前在 荷蘭數學和計算機科學研究學會 上班,在那裡,他為ABC編程語言工作了好多年。 ABC語言長這樣的
這是一個函數,你也許看不懂,根據英文單詞,或許可以大概猜出點什麼。這裡只想讓你知道,python也差不多長這樣,相比較會更容易理解些。
ABC雖然是一門編程語言,它的定位是作為教學或原型設計的工具,是專門為學校老師或者科研人員設計的。ABC的定位決定了它受眾不是很廣泛,並且它也有使用門檻,對計算機不了解的人,沒有經過一段時間的學習,可能根本就上不了手。所以,ABC並不能作為一門通用的編程語言,在業內也無法獲得成功。雖然說ABC沒有python那麼成功,但是ABC可以說是”the mother of python”,作者在很多地方都借鑒了ABC,取其精華、取其糟粕。現如今,python是長這樣的
可能對於沒接觸過編程的人來說,它們兩不都是一樣的,不都是一堆英文字母么,我都看不懂。但是對於初學計算機課程,那些需要學習C語言的人來說,python相比較算是更容易理解了。python非常簡短,一些複雜的流程,在C語言中,可能需要幾十行代碼,但是在python中,可能就只需要幾行代碼。當然不同的業務場景,可能不是這樣的,但是普遍情況下,用python的開發效率是非常高的。python適合快速開發,適合產品快速迭代出新。
1999年1月,也就是語言面世的10年後, 吉多 向DARPA(Defense Advanced Research Projects Agency,美國國防部一個負責科研的下屬機構)申請資金。我去翻了下該申請的修訂版,修訂版在1999年8月份提交,修訂版比第一版內容更具有概括性,並且內容翔實,條理清晰,值得翻閱。
該修訂版叫 Computer Programming for Everybody ,直譯過來,就是針對每個人的計算機編程,翻譯為通俗易懂的詞——人人編程,人人編程是一種 社會 現象,每個人都有一定的編程能力,並且對計算機有一定的認識,了解軟硬件是怎麼運轉起來的,了解一些軟硬件的設計規範,能夠通過編程來表達自己的想法,能夠通過編程來配置自己的軟件,通過編程來控制自己的機器,以改善自己的生活。舉個例子,你在某寶買了一個掃地機械人,該機械人支持定義打掃路線,支持設置掃地機械人在需要更換掃把的時候,指示燈顯示指定的顏色。你知道掃地機械人可以做什麼,有什麼操作習慣,這是基於你對一些機器的理解,如果你用過很多軟件,或者參與過軟件的設計,你大概都知道一些軟件可能都有「設置」、「編輯」或「幫助」等菜單鍵。這種設計思維,或者操作習慣,都是很多軟件都有的,有了這種認識之後,你面對很多同類型的軟件、或者同類型的產品,就大概能夠知道從那裡入手,以及對它有什麼功能,都有一個初步的期待或者認識。既然大家都了解計算機了,那麼計算機的一些概念或者說是理念,可以說是屬於常識的一部分,面對一些計算機或者說智能設備,也大概知道從哪裡上手使用。我覺得這就是作者要達到的願景。
該修訂版主要有幾個目的:
在這裡,他想從推廣python開始,因為python作為一門適合快速開發的工具,既適合專家,也適合初學者,同時python有一個活躍的且不斷增長的用戶群體,這個用戶群體對他這個申請也非常感興趣,願意為之努力。python的用戶數多,說明已經在市場得到了一定的認可,並且這個用戶群體也願意為python的發展做貢獻,這對於一門編程語言來說,最好不過了。
該提案的 基本論點 部分寫得很好,他說他想普及計算機應用,但並非通過介紹新的硬件,或者新軟件這種形式,而是通過賦予每個人編程能力來實現。信息技術的發展給了人們各種強大的計算機,它們以桌面電腦、筆記本電腦或者嵌入式系統的形式存在,如果用戶在軟件設計和實現上有一個通用的認知,那將會極大地促進生產和創造,並且對未來有深遠的影響。試想一下,如果你有一種修改和配置軟件的能力,並且你可以把你的修改通過社區網站分享其他人,其他人碰到同樣的問題的話,就可以參照你的方法。這種能力在緊急的情況下是很重要的,你不必等專家來給你解決問題,你自己就可以嘗試解決這些問題。說到這裡,你有沒有想起貼吧,或者論壇,論壇有很多個板塊,不同的領域分不同的板塊,假如你想root手機(手機越獄,指解除手機廠商的限制,獲取手機的用戶最高權限,以實現對手機的某種控制),你可以到論壇上root板塊找答案,這種形式可謂跟吉多提到的是一樣的。如果你對你的手機或者電腦有更深入的了解,你可以通過編程改善你的輸入法,或者改變你的顯示器冷暖色等等,這些都是對你生活有幫助的。吉多在這裡就是想達到這種狀態,簡單點說,人人都對計算機有一定的了解,且都有處理計算機問題的能力。
為了實現這個目標,作者制定了5年計劃,這個5年計劃如下:
5年計劃循序漸進,由淺入深。1999年3月,美國國防部對此進行了回應,同意撥款給他。作者的5年計劃在1999年底開始實施,雖然想推進5年,但是只收到1年的資金支持。不過,作者還是沒有放棄這個項目,一直推進,直到他不再參與python的工作。當時美國國防部對他們提供了多少資金呢,我沒看到官方公開的數據。2013年有報道稱,DARPA向Continuum Analytics提供3百萬美元的支持,讓該公司給python開發數據處理以及數據可視化工具。具體數字是否可靠,這個尚不清楚,但管中窺豹,可見美國國防部對該項目表示認可,並提供了資金支持。Continuum Analytics有一個比較有名的工具,叫Anaconda,Anaconda可以理解為是python + 各種科學計算庫的工具箱,Anaconda官網有這麼一句話
翻譯為「Continuum Analytics的Anaconda是使用python的、領先的開源科學計算平台,我們賦予那些正在改變世界的人超能力。」
在查資料的時候,我發現了一個wiki論壇, 該論壇對該項目進行了評價,論壇列出了該項目成功的地方和失敗的地方,以及一些 社會 人士的看法。論壇這樣總結道,這個項目成功的地方在於:
這個項目失敗的地方在於:
回想自己初學python的時候,我覺得這個總結是很公正的。python確實容易入門,有編程基礎的人可能只需要一個星期就能掌握python的一些基本語法。相比C語言,python對於初學者是很友好的,很容易讓人上手。但是,要深入理解python,並沒有這麼簡單,需要花很多時間去磨練。接手一個使用python的項目,你需要花一些時間精力去熟悉,去摸透裏面的邏輯,這對於初學者來說,是無法避免的。 對於一個程序員來說,作者能想像到以後計算機的普及應用,以及用戶的認知水平,還有他能夠做什麼,通過什麼來實現,能有這些遠大的抱負,這是非常不容易的。西方世界經常說到「change the world,make the world a better place」,作者也確實做到了,他設計的python在計算機世界裏扮演者一個非常重要的角色。如果通過 科技 能夠改變世界,那麼python就是改變世界的其中一步。1980-2000年,美國對 科技 公司是政策扶持、技術擴散,這期間湧現了如IBM、HP、思科等 科技 公司,大家熟知的微軟和蘋果都是在這期間上市的。python可以說是這個 科技 運動的一個縮影,在 科技 浪潮的推動下,python得到了長足的發展。
很多 科技 或工業相關的網站會根據當年編程語言的流行度做下排名,它們會列出當年在業界最受歡迎的編程語言。其中,IEEE Spectrum 和 TIOBE 的2021年度編程語言是python,如果我還沒記錯的話,TIOBE的2020年度編程語言也是python。可見python是非常受歡迎的,用現在的話講,就是「網紅」編程語言。現在,很多計算設備上都有python的身影,小到智能家居、手機、智能手錶,大到鋰電車、工控車床、甚至穿梭機都有python的身影。你可能在瀏覽網頁的時候,右下角彈出一個「7天python入門」的廣告,可見python現在還是有很多需求,因為有需求,所以才有人去投廣告,才會有人去找培訓機構。
作者在給美國國防部的提案中寫到,他想跟高中或大學展開合作,設計一些python的課程,針對不同年級,設計不同水平的課程。現在來看,他確實是做到了,現在哈佛、密歇根大學等排名靠前的大學,都有python課程,python在這些大學的CS(計算機科學)課程中應用非常廣泛,可以說是作為CS導論的一個教學工具。在一些比較高級的課程,比如數據科學、人工智能等都可以看到python的身影,這是因為學術界以及工業界為python提供了一些處理科學計算和大數據的工具,這也歸功於美國國防部的支持。美國有許多編程夏令營,針對不同年齡段有不同的課程,並且也有許多支持python代碼的編程競賽。Google在coursera上有一個面向初學者的課程,該課程叫 Google IT Automation with Python,完成課程大約需要 8 個月,課程建議每周花5小時學習,課程結束後就可以獲得Google頒發的證書。可見,不管是工業界,還是教育界,都對python有不同程度的支持。這裡打個岔,第一版的Google搜索引擎還是用python寫的,作者也在Google工作了一段時間。
現如今,每隔一段時間,就有一個PyCon活動,這個活動匯聚世界各地的開發者,每年都有開發者來展示他們使用python的成功案例,或者表達自己對python的新功能或者缺陷的看法。可見,python用戶社區一直都是很活躍的。這讓我想到了某新能源 汽車 ,該 汽車 用戶有很高的粘性,有一位車主跟我說過,他們有一個微信群,裏面有該新能源 汽車 的高管,很多車主樂意在裏面指出問題,或者提建議,因為這些高管會對問題或者建議做出相應的反饋。用戶願意提意見,產品經理願意廣開言路,採納多方建議,實屬不易。python社區也差不多如此。
幾年前,你是否看過一個新聞,《人工智能「網紅」編程語言Python進入山東小學課本》,這是2017年澎湃網的一則新聞,裏面講了python進入了山東省小學六年級教材,作為一門「網紅」編程語言,它是否適合低齡學生,這個倒是沒細說,但是可見國內有些地方是把編程作為一種比較基礎的能力來考量。python往低齡階段滲透是否合適呢,我在翻資料的時候瞥到韓國高麗大學的一篇論文,論文講述小學生在學習python的過程中會碰到一些困難,比如經常少打了一些括號,經常拼錯單詞,經常碰到語法錯誤,以及對這些現象的看法。還有,南京師範大學有一篇報道,講述了中學生學習在學習python時,採用面向問題的學習模式,我理解是case by case的教學模式,這種模式有利於學生培養學生的計算機思維,以及幫助他們理解一些計算機相關的概念,解決計算機相關的問題。
python是否適合低齡學生呢,我覺得這個是值得討論的話題。最後還要問你一句,你會讓你的小孩學習python么,從什麼時候開始學呢?你的娃因為不知道打多少個括號嚎啕大哭時,你能幫得上忙么?你到時候需要專門請一個程序員來給你的娃做家教么?
–
什麼是Python編程語言
優點:Python是一種代表簡單主義思想的語言,閱讀一個良好的Python程序就感覺像是在讀英語一樣,使你能夠專註於解決問題而不是去搞明白語言本身;
Python底層是用C語言編寫的,很多標準庫和第三方庫也都是用C寫的,運行速度非常快;
IPython
Notebook使我們更容易使用Python進行數據工作,可以輕鬆地與同時共享Notebook,無需他們安裝任何東西,大大減少組織代碼,輸出和注釋文件的開銷;
Python是一種通用語言,容易和直觀,在學習上會比較容易,可以加快你寫一個程序的快速,此外Python測試框架是一個內置的,可以保證你的代碼是可重複使用和可靠的;
Python還是一個多用途語言,把不同背景的人結合在一起,作為一種常見的、容易理解,大部分程序員都懂,可以很容易地和統計學家溝通,你可以使用一個簡單的工具就把你每一個工作夥伴整合起來。
由於它的開源本質,Python已經被移植在許多平台上,比如說:Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS等。
很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print
i,而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序寫入一個.py文件;
Python語法獨特,也許不應該被稱為局限,但是它用縮進來區分語句關係的方式還是給很多初學者帶來了困惑,即便是很有經驗的Python程序員,也可能陷入陷阱;
Python對比C、C++語言運行速度要慢一些。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187076.html