溫馨提示×

溫馨提示×

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

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

Python計(jì)算機(jī)組成是什么

發(fā)布時(shí)間:2022-03-25 09:37:11 來源:億速云 閱讀:194 作者:iii 欄目:編程語言

今天小編給大家分享一下Python計(jì)算機(jī)組成是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Python計(jì)算機(jī)組成是什么

一、計(jì)算機(jī)組成

??計(jì)算機(jī)已經(jīng)成為我們這個(gè)時(shí)代的核心設(shè)備,我們無時(shí)無刻都需要它。它也已經(jīng)不是人們印象中的臺式機(jī)、服務(wù)器,已經(jīng)演變成了我們身邊的任何物體,如手機(jī)、平板電腦和筆記本,以及很多人主觀上沒有意識到,但實(shí)際設(shè)備內(nèi)部確實(shí)包含“計(jì)算機(jī)”的設(shè)備,如電視機(jī)、微波爐、汽車,甚至小孩玩的智能機(jī)器人等。毫不夸張地說,計(jì)算機(jī)已經(jīng)成為人身體的延伸,大腦的延伸,成為不可或缺的一部分。未來,計(jì)算機(jī)將真的進(jìn)入人體、進(jìn)入大腦,真正成為人體的一部分。比如,在科幻電影《黑客帝國》中的主角被超級針頭插在頸部后方便可以實(shí)現(xiàn)快速學(xué)習(xí),改變大腦神經(jīng)網(wǎng)絡(luò),幾秒成為功夫高手。計(jì)算機(jī),俗稱電腦(Computer),用于高速計(jì)算的電子機(jī)器,是20世紀(jì)最偉大的科學(xué)技術(shù)發(fā)明之一,可以進(jìn)行數(shù)值計(jì)算和邏輯判斷,同時(shí)還具有存儲記憶和數(shù)據(jù)處理的功能。一個(gè)完整的計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成,如下圖所示:

Python計(jì)算機(jī)組成是什么

1.1 硬件系統(tǒng)

??硬件系統(tǒng)主要可以分為主機(jī)和外設(shè),是指構(gòu)成計(jì)算機(jī)系統(tǒng)的物理實(shí)體,它們主要由各種各樣的電子器件和機(jī)電裝置組成。從ENIAC(世界上第一臺計(jì)算機(jī))到目前最先進(jìn)的電腦,硬件系統(tǒng)的設(shè)計(jì)采用的都是馮·諾依曼體系結(jié)構(gòu),如下所示:

Python計(jì)算機(jī)組成是什么
  • 運(yùn)算器: 負(fù)責(zé)數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算,即數(shù)據(jù)的加工處理;

  • 控制器: 計(jì)算機(jī)的中樞神經(jīng),協(xié)調(diào)計(jì)算機(jī)各部分組件工作以及內(nèi)存和外設(shè)的訪問;
    其中:運(yùn)算器和控制器統(tǒng)稱為中央處理器,即CPU

  • 存儲器: 實(shí)現(xiàn)記憶功能的部件,用來存儲程序、數(shù)據(jù)、命令和各種信號等信息,并在需要時(shí)提供這些信息;

  • 輸入設(shè)備: 實(shí)現(xiàn)將程序、原始數(shù)據(jù)、文字、字符、控制命令或現(xiàn)場采集的數(shù)據(jù)等信息輸入到計(jì)算機(jī)中;

  • 輸出設(shè)備: 實(shí)現(xiàn)將計(jì)算機(jī)處理后生成的中間結(jié)果或最終結(jié)果輸出,包括各種數(shù)據(jù)符號、文字和控制信號等信息;

1.2 軟件系統(tǒng)

??軟件系統(tǒng)主要可以分為系統(tǒng)軟件和應(yīng)用軟件,是指保證計(jì)算機(jī)正常運(yùn)行所需的各種程序,是我們編程實(shí)踐的主要對象,組成如下:

Python計(jì)算機(jī)組成是什么
  • 系統(tǒng)軟件: 保證計(jì)算機(jī)硬件的正常工作和性能得到發(fā)揮,并且為計(jì)算機(jī)用戶提供一個(gè)直觀、友好和方便的使用界面。

  1. 操作系統(tǒng): 方便用戶控制和管理計(jì)算機(jī)軟硬件資源的系統(tǒng)軟件,功能復(fù)雜,是所有軟件正常運(yùn)行的基礎(chǔ)和核心;

  2. 編譯程序: 也叫語言處理程序,作用是把程序員使用各種編程語言,如Java和Python等所編寫的程序,翻譯成計(jì)算機(jī)可執(zhí)行的機(jī)器語言。

  • 應(yīng)用軟件: 應(yīng)用軟件是計(jì)算機(jī)為滿足不同用戶的需求而提供的那部分軟件,它可以拓寬計(jì)算機(jī)系統(tǒng)的應(yīng)用領(lǐng)域,方法硬件的性能。

  1. 社交辦公類: 微信、QQ、WPS、騰訊會議、釘釘、陌陌等;

  2. 休閑娛樂類: QQ音樂、騰訊視頻、Steam、歡樂斗地主等;

二、程序運(yùn)行機(jī)制

??機(jī)器語言也叫機(jī)器碼,是可以通過CPU進(jìn)行分析和執(zhí)行的指令集。計(jì)算機(jī)只能識別0和1的機(jī)器碼,不能接收類似于漢語、英語或其它的人類語言。因此,為了實(shí)現(xiàn)人類和計(jì)算機(jī)的交互,各種編程語言應(yīng)運(yùn)而生,如C++、Java、PhP和Python等。

2.1 編譯型和解釋型

分析: 計(jì)算機(jī)可以直接識別下面這段Python代碼嗎?

"""
分析:在控制臺輸出以下Python代碼,計(jì)算機(jī)可以直接處理嗎?
"""print("Hello world!")  # print()為Python中的內(nèi)置函數(shù),主要用于輸出括號內(nèi)的內(nèi)容,類似于Java中的System.out.println("Hello world!")

??顯然,上述代碼主要由英文字母和標(biāo)點(diǎn)符號組成,但前面已經(jīng)說過,計(jì)算機(jī)只能識別機(jī)器碼(0和1),即它本身壓根就不認(rèn)識這段代碼。

Python計(jì)算機(jī)組成是什么

??那么,我們是如何通過代碼控制計(jì)算機(jī)進(jìn)行工作的?

Python計(jì)算機(jī)組成是什么

??人機(jī)交互的過程就像一個(gè)當(dāng)?shù)厝伺c一個(gè)外國人進(jìn)行交流時(shí)一樣,如果雙方想要理解彼此的想法,就需要一個(gè)中間介質(zhì),它可以通過某種方式把對方的語言轉(zhuǎn)換成自己可以理解的語言,反之亦然。因此,計(jì)算機(jī)如果想要理解我們編寫的代碼,就需要將其轉(zhuǎn)換為自己可以識別的機(jī)器碼,而根據(jù)轉(zhuǎn)換過程,編程語言又被分為編譯型和解釋型。

  • 編譯型: 編譯型語言可以直接將代碼轉(zhuǎn)為計(jì)算機(jī)可以識別并執(zhí)行的機(jī)器碼,如C++

Python計(jì)算機(jī)組成是什么
  • 解釋型: 解釋型語言先將代碼轉(zhuǎn)換為字節(jié)碼,然后再將其翻譯成計(jì)算機(jī)可識別的機(jī)器碼,如Python。

Python計(jì)算機(jī)組成是什么

2.2 計(jì)算機(jī)處理程序的流程

  1. 用戶打開程序,程序開始執(zhí)行;

  2. 操作系統(tǒng)將程序內(nèi)容和相關(guān)數(shù)據(jù)送入計(jì)算機(jī)內(nèi)存;

  3. CPU根據(jù)程序內(nèi)容從內(nèi)存中讀取指令;

  4. CPU分析、處理指令,并為下一條指令做好準(zhǔn)備;

  5. 讀取下一條指令分析并處理,如此循環(huán)往復(fù)直至處理完程序中的全部指令,最后將計(jì)算結(jié)果放入指令指定的存儲器地址中;

2.3 計(jì)算機(jī)語言發(fā)展史

?? 算法是計(jì)算機(jī)的靈魂,而編程語言是使得計(jì)算機(jī)具有靈魂的工具。伴隨著計(jì)算機(jī)硬件的發(fā)展,計(jì)算機(jī)編程語言也歷經(jīng)了從低級到高級的演變,而每一次改變的核心思想就是“讓人更容易編程”。計(jì)算機(jī)硬件的速度越快、體積越小、成本越低,應(yīng)用到人類社會的場景就會越多,那么所需要的算法就會越復(fù)雜,也就要求計(jì)算機(jī)編程語言越高級。最初重達(dá)幾十噸但一秒只能運(yùn)算5000次的ENIAC,只能做非常小的應(yīng)用,如彈道計(jì)算。如今,任何一個(gè)人的手機(jī)運(yùn)算能力都可以秒殺那個(gè)年代地球上所有計(jì)算機(jī)運(yùn)算能力的總和。越容易使用的語言,就有越多人使用;越多人使用,就有越多人協(xié)作;越多人協(xié)作,就可以創(chuàng)造越復(fù)雜的物體?,F(xiàn)代社會,一個(gè)軟件動輒幾十或幾百人、甚至幾千人協(xié)作也成為可能,這自然就為開發(fā)復(fù)雜軟件提供了“人力基礎(chǔ)”。這是一個(gè)人類普遍的社會現(xiàn)象,越容易使用的工具,通過使用數(shù)量,通過大量人的協(xié)作,徹底改變某個(gè)行業(yè)甚至人類社會。未來三十年必將是軟件人才的世界,除普通軟件,大量人工智能軟件,如自動駕駛、機(jī)器人保姆以及機(jī)器人女友都會進(jìn)入我們的生活,甚至計(jì)算機(jī)技術(shù)和基因工程結(jié)合以實(shí)現(xiàn)長生不老,感興趣的可以閱讀一下《未來簡史: 從智人到智神》。

Python計(jì)算機(jī)組成是什么
  • 機(jī)器語言: 相當(dāng)于人類的的原始階段;

??機(jī)器語言由數(shù)字組成所有指令。當(dāng)讓你使用數(shù)字編程,寫幾百個(gè)數(shù)字、甚至幾千個(gè)數(shù)字,每天面對的是純數(shù)字,可以大膽預(yù)測:“程序員群體100%會有精神問題”。機(jī)器語言通常由數(shù)字串組成(最終被簡化成二進(jìn)制0和1),對于人類來說,機(jī)器語言過于繁瑣。使用機(jī)器語言,人類無法編出復(fù)雜的程序。

  • 匯編語言: 相當(dāng)于人類的手工業(yè)階段;

??為了編程的方便,以及解決更加復(fù)雜的問題,程序員開始改進(jìn)機(jī)器語言,使用英文縮寫的助記符(單詞)來表示基本的計(jì)算機(jī)操作。這些助記符構(gòu)成了匯編語言的基礎(chǔ),如:LOAD、MOVE 之類,這樣人更容易記憶和使用。識別成百上千個(gè)單詞,總比成百上千個(gè)數(shù)字,感覺會好很多。匯編語言相當(dāng)于人類的手工業(yè)社會,需要技術(shù)極其嫻熟的工匠,但是開發(fā)效率也非常低。匯編語言雖然能編寫高效率的程序,但是學(xué)習(xí)和使用都不是易事,并且很難調(diào)試。另一個(gè)復(fù)雜的問題,匯編語言以及早期的計(jì)算機(jī)語言(Basic、Fortran等)沒有考慮結(jié)構(gòu)化設(shè)計(jì)原則,而是使用goto語句來作為程序流程控制的主要方法。這樣做的后果是:一大堆混亂的調(diào)轉(zhuǎn)語句使得程序幾乎不可能被讀懂。對于那個(gè)時(shí)代的程序員,能讀懂上個(gè)月自己寫的代碼都成為一種挑戰(zhàn)。即使這樣,匯編語言仍然應(yīng)用于工業(yè)電子編程領(lǐng)域、軟件的加密解密、計(jì)算機(jī)病毒分析等。

  • 高級編程語言: 相當(dāng)于人類工業(yè)階段;

??對于簡單的任務(wù),匯編語言可以勝任。但是,隨著計(jì)算機(jī)的發(fā)展以及其漸漸滲透到了工作生活的方方面面,一些復(fù)雜的任務(wù)出現(xiàn)了,匯編語言就顯得力不從心(應(yīng)該說是程序員使用匯編語言解決復(fù)雜問題出現(xiàn)了瓶頸)。于是,出現(xiàn)了高級語言,如C++、Java等。語言越高級,越接近人的思維,使用起來就越方便。高級語言,尤其是面向?qū)ο蟮恼Z言,如Java、Python等,使得編程的難度和門檻越來越低。目前以及可預(yù)見的未來,計(jì)算機(jī)語言仍然處于“第三代高級語言”階段,高級語言允許程序員使用接近日常英語的指令來編寫程序。例如,實(shí)現(xiàn)一個(gè)簡單的任務(wù):A+B=C , 使用機(jī)器語言、匯編語言和高級語言的的實(shí)現(xiàn)如下所示:
Python計(jì)算機(jī)組成是什么

三、Python語言的誕生與發(fā)展史

Python是一門動態(tài)數(shù)據(jù)類型、面向?qū)ο蟮慕忉屝驼Z言,主要用于人工智能的各個(gè)領(lǐng)域,如機(jī)器學(xué)習(xí)、爬蟲與數(shù)據(jù)分析、深度學(xué)習(xí)、計(jì)算機(jī)視覺等。

TIOBE編程語言排行榜:

Python計(jì)算機(jī)組成是什么

3.1 誕生與發(fā)展

  • 時(shí)代背景: 硬件限制;

??Python的作者,Guido von Rossum(吉多·范·羅蘇姆),荷蘭人。1982年,吉多從阿姆斯特丹大學(xué)獲得了數(shù)學(xué)和計(jì)算機(jī)碩士學(xué)位。然而,盡管他算得上是一位數(shù)學(xué)家,但他更加享受計(jì)算機(jī)帶來的樂趣。用他的話說,雖然擁有數(shù)學(xué)和計(jì)算機(jī)雙料資質(zhì),他總趨向于做計(jì)算機(jī)相關(guān)的工作,并熱衷于做任何和編程相關(guān)的事情。在那個(gè)時(shí)候,吉多接觸并使用過諸如Pascal、C、Fortran等語言。這些語言的基本設(shè)計(jì)原則是讓機(jī)器能更快運(yùn)行。在80年代,雖然IBM和蘋果已經(jīng)掀起了個(gè)人電腦(personal computer)浪潮,但這些個(gè)人電腦的配置很低。比如早期的Macintosh,只有8MHz的CPU主頻和128KB的RAM,一個(gè)大的數(shù)組就能占滿內(nèi)存。所有的編譯器的核心是做優(yōu)化,以便讓程序能夠運(yùn)行。為了增進(jìn)效率,語言也迫使程序員像計(jì)算機(jī)一樣思考,以便能寫出更符合機(jī)器口味的程序。在那個(gè)時(shí)代,程序員恨不得用手榨取計(jì)算機(jī)每一寸的能力。有人甚至認(rèn)為C語言的指針是在浪費(fèi)內(nèi)存。至于動態(tài)類型,內(nèi)存自動管理,面向?qū)ο蟆?別想了,那會讓你的電腦陷入癱瘓。

  • Shell: 本質(zhì)是調(diào)用命令,它不是一個(gè)真正的語言;

??這種編程方式讓吉多感到苦惱。吉多知道如何用C語言寫出一個(gè)功能,但整個(gè)編寫過程需要耗費(fèi)大量的時(shí)間,即使他已經(jīng)準(zhǔn)確的知道了如何實(shí)現(xiàn)。他的另一個(gè)選擇是shell。Bourne Shell作為UNIX系統(tǒng)的解釋器已經(jīng)長期存在。UNIX的管理員們常常用shell去寫一些簡單的腳本,以進(jìn)行一些系統(tǒng)維護(hù)的工作,比如定期備份、文件系統(tǒng)管理等等。shell可以像膠水一樣,將UNIX系統(tǒng)下的許多功能連接在一起。許多C語言上百行的程序,在shell下只用幾行就可以完成。然而,shell的本質(zhì)是調(diào)用命令,它并不是一個(gè)真正的語言。例如,shell沒有數(shù)值型的數(shù)據(jù)類型,加法運(yùn)算都很復(fù)雜。總之,shell不能全面調(diào)動計(jì)算機(jī)的功能

  • ABC語言: 可讀易用,弊端明顯;

??吉多希望有一種語言,這種語言能夠像C語言那樣,能夠全面調(diào)用計(jì)算機(jī)的功能接口,又可以像shell那樣,可以輕松的編程。ABC語言讓吉多看到希望。ABC是由荷蘭的數(shù)學(xué)和計(jì)算機(jī)研究所開發(fā)的。吉多在該研究所工作,并參與到ABC語言的開發(fā)。ABC語言以教學(xué)為目的。與當(dāng)時(shí)的大部分語言不同,ABC語言的目標(biāo)是“讓用戶感覺更好”。ABC語言希望讓語言變得容易閱讀、使用、記憶和學(xué)習(xí),并以此來激發(fā)人們學(xué)習(xí)編程的興趣。
??然而,ABC語言編譯器需要很高的電腦配置才能運(yùn)行,而這些電腦的使用者通常都精通電腦,所以他們更多的是關(guān)注程序的效率,而非它的學(xué)習(xí)難度。另一方面,如下致命的設(shè)計(jì)問題是它沒有流行起來的原因:

  1. 可擴(kuò)展性差: ABC不是模塊化語言,如果想在其中增加功能,如對圖形化的支持,需要改動很多地方。

  2. 不能直接進(jìn)行IO: ABC不能直接操作文件系統(tǒng),即不能直接讀寫數(shù)據(jù)。輸入輸出的困難對于計(jì)算機(jī)而言是致命的,你能想象一個(gè)不能打開車門的跑車嗎?

  3. 過度革新: ABC用自然語言的形式來表達(dá)程序的意義。例如,它使用How to來定義一個(gè)函數(shù),而對于程序員來說,他們更習(xí)慣用functiondefine

  4. 傳播困難: ABC編譯器很大,必須保存在磁帶上,這也就意味著如果想要使用它,必須先準(zhǔn)備一個(gè)大大的磁帶。

  • Python孕育與成長: 介于CShell之間的簡單易學(xué)、功能全面的語言;

??1989年,為了打發(fā)圣誕節(jié)假期,吉多開始寫Python語言的編譯器。Python這個(gè)名字,來自吉多所摯愛的電視劇Monty Python’s Flying Circus。他希望這個(gè)新的叫做Python的語言,能符合他的理想:介于C和shell之間,功能全面,易學(xué)易用,可拓展的語言。吉多作為一個(gè)語言設(shè)計(jì)愛好者,已經(jīng)有過設(shè)計(jì)語言的嘗試。這一次,也不過是一次純粹的hacking行為。

??1991年,第一個(gè)Python編譯器誕生。它是用C語言實(shí)現(xiàn)的,并能夠調(diào)用C語言的庫文件。從一出生,Python已經(jīng)具有了:類,函數(shù),異常處理,包含表和詞典在內(nèi)的核心數(shù)據(jù)類型,以及模塊為基礎(chǔ)的拓展系統(tǒng)。Python語法很多來自C,但又受到ABC語言的強(qiáng)烈影響。來自ABC語言的一些規(guī)定直到今天還富有爭議,比如強(qiáng)制縮進(jìn),但這些語法規(guī)定讓Python容易讀。另一方面,Python聰明的選擇服從一些慣例,特別是C語言的慣例,比如恢復(fù)等號賦值。吉多認(rèn)為,如果“常識”上確立的東西,沒有必要過度糾結(jié)。Python從一開始就特別在意可拓展性。Python可以在多個(gè)層次上拓展。從高層上,你可以直接引入.py文件。在底層,你可以引用C語言的庫。Python程序員可以快速的使用Python寫.py文件作為拓展模塊。但當(dāng)性能是考慮的重要因素時(shí),Python程序員可以深入底層,寫C程序,編譯為.so文件引入到Python中使用。Python就好像是使用鋼構(gòu)建房一樣,先規(guī)定好大的框架,而程序員可以在此框架下相當(dāng)自由的拓展或更改。

??最初的Python完全由吉多本人開發(fā)。Python得到吉多同事的歡迎。他們迅速的反饋使用意見,并參與到Python的改進(jìn)。吉多和一些同事構(gòu)成Python的核心團(tuán)隊(duì)。他們將自己大部分的業(yè)余時(shí)間用于hack Python。隨后,Python拓展到研究所之外。Python將許多技術(shù)層面上的細(xì)節(jié)隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。因此,Python程序員可以花更多的時(shí)間用于思考程序的邏輯,而不是具體的實(shí)現(xiàn)細(xì)節(jié)。這一特征吸引了廣大的程序員,Python開始流行。計(jì)算機(jī)硬件越來越強(qiáng)大,Python又容易使用,所以許多人開始轉(zhuǎn)向Python。吉多維護(hù)了一個(gè)mail list,Python用戶就通過郵件進(jìn)行交流。Python用戶來自許多領(lǐng)域,有不同的背景,對Python也有不同的需求。Python相當(dāng)?shù)拈_放,又容易拓展,所以當(dāng)用戶不滿足于現(xiàn)有功能,很容易對Python進(jìn)行拓展或改造。隨后,這些用戶將改動發(fā)給吉多,并由吉多決定是否將新的特征加入到Python或者標(biāo)準(zhǔn)庫中。如果代碼能被納入Python自身或者標(biāo)準(zhǔn)庫,這將是極大的榮譽(yù)。由于吉多至高無上的決定權(quán),他因此被稱為“終身的仁慈獨(dú)裁者”。2018年7月12日,在完成PEP(Python Enhancement Proposals)572后,吉多決定退出Python核心決策層。

??Python以及其標(biāo)準(zhǔn)庫的功能強(qiáng)大,這些是整個(gè)社區(qū)的貢獻(xiàn)。Python的開發(fā)者來自不同領(lǐng)域,他們將不同領(lǐng)域的優(yōu)點(diǎn)帶給Python。例如,Python標(biāo)準(zhǔn)庫中的正則表達(dá)式(Regular expression)是參考Perl,而lambda, map, filter, reduce等函數(shù)參考了Lisp。Python本身的一些功能以及大部分的標(biāo)準(zhǔn)庫來自于社區(qū)。Python的社區(qū)不斷擴(kuò)大,進(jìn)而擁有了自己的newsgroup,網(wǎng)站,以及基金。從Python 2.0開始,Python也從mail list的開發(fā)方式,轉(zhuǎn)為完全開源的開發(fā)方式。社區(qū)氣氛已經(jīng)形成,工作被整個(gè)社區(qū)分擔(dān),Python也獲得了更加高速的發(fā)展。到今天,Python的框架已經(jīng)確立。Python語言以對象為核心組織代碼,支持多種編程范式,采用動態(tài)類型,自動進(jìn)行內(nèi)存回收。Python支持解釋運(yùn)行,并能調(diào)用C庫進(jìn)行拓展。Python有強(qiáng)大的標(biāo)準(zhǔn)庫。由于標(biāo)準(zhǔn)庫的體系已經(jīng)穩(wěn)定,所以Python的生態(tài)系統(tǒng)開始拓展到第三方包。這些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,將Python升級成了物種豐富的熱帶雨林。

??Python崇尚優(yōu)美、清晰、簡單,是一個(gè)優(yōu)秀并廣泛使用的語言。Python在TIOBE排行榜中排行第八,它是Google的第三大開發(fā)語言,Dropbox的基礎(chǔ)語言,豆瓣的服務(wù)器語言。Python的發(fā)展史可以作為一個(gè)代表,帶給我們許多啟示。在Python的開發(fā)過程中,社區(qū)起到了重要的作用。吉多自認(rèn)為自己不是全能型的程序員,所以他只負(fù)責(zé)制訂框架。如果問題太復(fù)雜,他會選擇繞過去,也就是cut the corner。這些問題最終由社區(qū)中的其他人解決。社區(qū)中的人才是異常豐富的,就連創(chuàng)建網(wǎng)站,籌集基金這樣與開發(fā)稍遠(yuǎn)的事情,也有人樂意于處理。如今的項(xiàng)目開發(fā)越來越復(fù)雜,越來越龐大,合作以及開放的心態(tài)將成為項(xiàng)目最終成功的關(guān)鍵。

??Python從其他語言中學(xué)到了很多,無論是已經(jīng)進(jìn)入歷史的ABC,還是依然在使用的C和Perl,以及許多沒有列出的其他語言??梢哉f,Python的成功代表了它所有借鑒的語言的成功。同樣,Ruby借鑒了Python,它的成功也代表了Python某些方面的成功。每個(gè)語言都是混合體,都有它優(yōu)秀的地方,但同時(shí)也有各種各樣的缺陷。同時(shí),一個(gè)語言“好與不好”的評判,往往受制于平臺、硬件、時(shí)代等等外部原因,程序員經(jīng)歷過許多語言之爭。

3.2 設(shè)計(jì)哲學(xué)

  • 獲取Python設(shè)計(jì)哲學(xué): 成功安裝Python軟件后(下一個(gè)專題),打開任意一個(gè)編輯環(huán)境鍵入import this運(yùn)行即可;

Python計(jì)算機(jī)組成是什么
  • 總結(jié): 簡單優(yōu)雅可擴(kuò)展,實(shí)用扁平是關(guān)鍵,最佳方案only one???

3.3 優(yōu)勢與不足

  • 優(yōu)勢:

  1. 簡單易學(xué)可擴(kuò)展: 閱讀一個(gè)良好的Python程序就像欣賞一篇優(yōu)美的文章一樣,盡管它的要求非常嚴(yán)格,如強(qiáng)制縮進(jìn)可提高代碼的可讀性。Python的這種偽代碼本質(zhì)使得我們可以更多地關(guān)注于解決問題的邏輯而非搞明白語言本身,如我們無需過多關(guān)注諸如內(nèi)存管理這樣的底層細(xì)節(jié)。如果我們希望一段關(guān)鍵代碼運(yùn)行的更快(C要比Python快50倍以上)或希望某些算法不公開,可以把部分程序用CC++語言編寫,然后在Python程序中進(jìn)行調(diào)用。

  2. 免費(fèi)開源可移植: Python是FLOSS(自由/開放源碼軟件)之一,也就是說我們可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼 、對它做改動、把它的一部分用于新的自由軟件中。由于其開源本質(zhì),Python可移植在許多計(jì)算機(jī)平臺上,如Windows、Linux等

  3. 面向?qū)ο? Python既支持面向過程的編程也支持面向?qū)ο蟮木幊獭?strong>在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。與其它的編程語言如C++和Java相比,Python以一種非常強(qiáng)大又簡單的方式實(shí)現(xiàn)面向?qū)ο缶幊蹋庋b、繼承和多態(tài)三大特性則是它成"神"的關(guān)鍵。

  4. 動態(tài)語言: 動態(tài)語言,又稱為弱類型語言,是指變量在創(chuàng)建時(shí)不需聲明類型,具體類型根據(jù)指向的內(nèi)存單元中的數(shù)據(jù)類型決定,即指向什么類型就是什么類型。相反,靜態(tài)語言(強(qiáng)類型語言),定義變量時(shí)需要聲明類型,變量指向的內(nèi)存單元可存放的數(shù)據(jù)類型固定。例如,Python中定義一個(gè)整數(shù)變量為num = 10,而在Java中則為int num = 10;??偨Y(jié):動態(tài)類型,指向可變,內(nèi)存單元中的內(nèi)容不可變;靜態(tài)類型,指向不可變,內(nèi)容可變。

  5. 解釋型語言: 編譯型語言,如C++寫的程序可以從源文件(C++語言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語言,即二進(jìn)制代碼(0和1)。這個(gè)過程通過編譯器和不同的標(biāo)記以及選項(xiàng)完成。當(dāng)我們運(yùn)行程序的時(shí)候,連接轉(zhuǎn)載器軟件把我們的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。我們可以直接從源代碼運(yùn)行程序。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器碼并運(yùn)行。由于只需要把我們的Python程序拷貝到另外一臺計(jì)算機(jī)上,它就可以工作了,這也使得Python程序更加容易移植。

  6. 豐富的庫: 包括Python自帶的標(biāo)準(zhǔn)庫和第三方庫。其中Python的標(biāo)準(zhǔn)庫可以幫助我們處理各種工作,包括正則表達(dá)式、文檔生成、線程、數(shù)據(jù)庫、HTML、GUI等。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,Python也支持安裝第三方庫,如wxPython、Twisted和Python圖像庫等。

  • 缺點(diǎn): Python語言非常完美,沒有明顯的短板和缺點(diǎn)。唯一的不足就是執(zhí)行效率慢,而這個(gè)是解釋型語言所通有的,不過這一缺陷會隨著計(jì)算機(jī)硬件性能的不斷提升而弱化。

3.4 應(yīng)用場景

Python計(jì)算機(jī)組成是什么

以上就是“Python計(jì)算機(jī)組成是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

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

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

AI