python全棧開發學習 01

本節內容
 
01 計算機發展史簡介
 
02 計算機的組成
 
03 計算機的基本原理
 
 
01 計算機發展史簡介
 
計算機(computer,是一種用於高速計算的電子計算機器,能夠進行數值計算,又能夠進行邏輯計算,還具備存儲記憶功能。是可以按照程序運行,自動、高速處理海量數據的現代化智能電子設備。由硬件系統和軟件系統所組成,沒有安裝任何軟件的計算機稱爲裸機。可分爲超級計算機、工業控制計算機、網絡計算機、我的計算機、嵌入式計算機五類,較先進的計算機有生物計算機、光子計算機、量子計算機等。

計算機發明者約翰·馮·諾依曼。計算機是20世紀最早進的科學技術發明之一,對人類的生產活動和社會活動產生了極其重要的影響,並以強大的生命力飛速發展。它的應用領域從最初的軍事科研應用擴展到社會的各個領域,已造成了規模巨大的計算機產業,帶動了全球範圍的技術進步,由此引起了深入的社會變革,計算機已遍佈通常學校、企事業單位,進入尋常百姓家,成爲信息社會中必不可少的工具。

計算機的應用在中國愈來愈廣泛,改革開放之後,中國計算機用戶的數量不斷攀升,應用水平不斷提升,特別是互聯網、通訊、多媒體等領域的應用取得了不錯的成績。1996年至2009 年,計算機用戶數量從原來的630萬增加至6710 萬臺,聯網計算機臺數由原來的2.9萬臺上升至5940萬臺。互聯網用戶已經達到3.16 億,無線互聯網有6.7 億移動用戶,其中手機上網用戶達1.17 億,爲全球第一位。

計算工具的演化經歷了由簡單到複雜、從低級到高級的不一樣階段,例如從「結繩記事」中的繩結到算籌、算盤計算尺、機械計算機等。它們在不一樣的歷史時期發揮了各自的歷史做用,同時也啓發了電子計算機的研製和設計思路。

1642年法國哲學-數學家Blaise Pascal 發明了世界上第一臺手搖式機械式計算機,利用齒輪傳動原理製成,能作加減法

1889年,美國科學家赫爾曼·何樂禮研製出以電力爲基礎的電動製表機,用以儲存計算資料。

1930年,美國科學家範內瓦·布什造出世界上首臺模擬電子計算機。

1933年,美國數學家D.N.Lehmer造出一臺電氣計算機用來分解1-1000萬之間的全部天然數爲素數因子。

1946年2月14日,由美國軍方定製的世界上第一臺電子計算機「電子數字積分計算機」(ENIAC Electronic Numerical And Calculator)在美國賓夕法尼亞大學問世了。ENIAC(中文名:埃尼阿克)是美國奧伯丁武器試驗場爲了知足計算彈道須要而研製成的,這臺計算器使用了17840支電子管,大小爲80英尺×8英尺,重達28t(噸),功耗爲170kW,其運算速度爲每秒5000次的加法運算,造價約爲487000美圓。ENIAC的問世具備劃時代的意義,代表電子計算機時代的到來。在之後60多年裏,計算機技術以驚人的速度發展,沒有任何一門技術的性能價格比能在30年內增加6個數量級。

第1代:電子管數字機(1946—1958年)

硬件方面,邏輯元件採用的是真空電子管,主存儲器採用汞延遲線、陰極射線示波管靜電存儲器、磁鼓、磁芯;外存儲器採用的是磁帶。軟件方面採用的是機器語言、彙編語言。應用領域以軍事和科學計算爲主。

特色是體積大、功耗高、可靠性差。速度慢(通常爲每秒數千次至數萬次)、價格昂貴,但爲之後的計算機發展奠基了基礎。

第2代:晶體管數字機(1958—1964年)

硬件方的操做系統、高級語言及其編譯程序。應用領域以科學計算和事務處理爲主,並開始進入工業控制領域。特色是體積縮小、能耗下降、可靠性提升、運算速度提升(通常爲每秒數10萬次,可高達300萬次)、性能比第1代計算機有很大的提升。

第3代:集成電路數字機(1964—1970年)

硬件方面,邏輯元件採用中、小規模集成電路(MSI、SSI),主存儲器仍採用磁芯。軟件方面出現了分時操做系統以及結構化、規模化程序設計方法。特色是速度更快(通常爲每秒數百萬次至數千萬次),並且可靠性有了顯著提升,價格進一步降低,產品走向了通用化、系列化和標準化等。應用領域開始進入文字處理和圖形圖像處理領域。

第4代:大規模集成電路機(1970年至今)

硬件方面,邏輯元件採用大規模和超大規模集成電路(LSI和VLSI)。軟件方面出現了數據庫管理系統、網絡管理系統和麪向對象語言等。特色是1971年世界上第一臺微處理器在美國硅谷誕生,開創了微型計算機的新時代。應用領域從科學計算、事務管理、過程控制逐步走向家庭。
html


因爲集成技術的發展,半導體芯片的集成度更高,每塊芯片可容納數萬乃至數百萬個晶體管,而且能夠把運算器和控制器都集中在一個芯片上、從而出現了微處理器,而且能夠用微處理器和大規模、超大規模集成電路組裝成微型計算機,就是咱們常說的微電腦或PC機。微型計算機體積小,價格便宜,使用方便,但它的功能和運算速度已經達到甚至超過了過去的大型計算機。另外一方面,利用大規模、超大規模集成電路製造的各類邏輯芯片,已經制成了體積並不很大,但運算速度可達一億甚至幾十億次的巨型計算機。我國繼1983年研製成功每秒運算一億次的銀河Ⅰ這型巨型機之後,又於1993年研製成功每秒運算十億次的銀河Ⅱ型通用並行巨型計算機。這一時期還產生了新一代的程序設計語言以及數據庫管理系統和網絡軟件等。

隨着物理元、器件的變化,不只計算機主機經歷了更新換代,它的外部設備也在不斷地變革。好比外存儲器,由最初的陰極射線顯示管發展到磁芯、磁鼓,之後又發展爲通用的磁盤,現又出現了體積更小、容量更大、速度更快的只讀光盤(CD—ROM)。
python

02 計算機的組成程序員

 

計算機是由 硬件系統(hardware system)和軟件系統(software system)兩部分組成的。

傳統電腦系統的硬體單元通常可分爲輸入單元、輸出單元、算術邏輯單元控制單元記憶單元,其中算術邏輯單元和控制單元合稱中央處理單元(Center Processing Unit,CPU)。數據庫

 

  • 電源

 

電源是電腦中不可缺乏的供電設備,它的做用是將220V交流電轉換爲電腦中使用的5V、12V、3.3V直流電,其性能的好壞,直接影響到其餘設備工做的穩定性,進而會影響整機的穩定性。手提電腦在自帶鋰電池狀況下,爲手提電腦提供有效電源。

 

  • 主板

 

主板是電腦中各個部件工做的一個平臺,它把電腦的各個部件緊密鏈接在一塊兒,各個部件經過主板進行數據傳輸。也就是說,電腦中重要的「交通樞紐」都在主板上,它工做的穩定性影響着整機工做的穩定性。

 

 

CPU即 中央處理器,是一臺計算機的運算核心和控制核心。其功能主要是解釋計算機指令以及處理計算機軟件中的數據。CPU由運算器、控制器、寄存器、高速緩存及實現它們之間聯繫的數據、控制及狀態的總線構成。做爲整個系統的核心,CPU也是整個系統最高的執行單元,所以CPU已成爲決定電腦性能的核心部件,不少用戶都以它爲標準來判斷電腦的檔次。

 

  • 內存

 

內存又叫內部存儲器或者是 隨機存儲器(RAM),分爲DDR內存和SDRAM內存,(可是SDRAM因爲容量低,存儲速度慢,穩定性差,已經被DDR淘汰了)內存屬於電子式存儲設備,它由電路板和芯片組成,特色是體積小,速度快,有電可存,無電清空,即電腦在開機狀態時內存中可存儲數據,關機後將自動清空其中的全部數據。 內存有DDR、DDR II、DDR III三大類,容量1-64GB。

 

  • 硬盤

 

硬盤屬於外部存儲器,機械硬盤由金屬磁片製成,而磁片有記憶功能,因此儲到磁片上的數據,不論在開機,仍是關機,都不會丟失。硬盤容量很大,已達TB級,尺寸有3.五、2.五、1.八、1.0英寸等,接口有IDE、SATA、SCSI等,SATA最廣泛。移動硬盤是以硬盤爲存儲介質,強調便攜性的存儲產品。市場上絕大多數的移動硬盤都是以標準硬盤爲基礎的,而只有不多部分的是以微型硬盤(1.8英寸硬盤等)爲基礎,但價格因素決定着主流移動硬盤仍是以標準筆記本硬盤爲基礎。由於採用硬盤爲存儲介質,所以移動硬盤在數據的讀寫模式與標準IDE硬盤是相同的。移動硬盤多采用USB、IEEE1394等傳輸速度較快的接口,能夠較高的速度與系統進行數據傳輸。固態硬盤用固態電子存儲芯片陣列而製成的硬盤,由控制單元和存儲單元(FLASH芯片)組成。固態硬盤在產品外形和尺寸上也徹底與普通硬盤一致可是固態硬盤比機械硬盤速度更快。

 

  • 聲卡

 

聲卡是組成多媒體電腦必不可少的一個硬件設備,其做用是當發出播放命令後,聲卡將電腦中的聲音數字信號轉換成模擬信號送到音箱上發出聲音。

 

  • 顯卡

 

顯卡在工做時與顯示器配合輸出圖形、文字,做用是將計算機系統所須要的顯示信息進行轉換驅動,並向顯示器提供行掃描信號,控制顯示器的正確顯示,是鏈接顯示器和我的電腦主板的重要元件,是「人機對話」的重要設備之一。

 

  • 網卡

 

網卡是工做在數據鏈路層的網路組件,是局域網中鏈接計算機和傳輸介質的接口,不只能實現與局域網傳輸介質之間的物理鏈接和電信號匹配,還涉及幀的發送與接收、幀的封裝與拆封、介質訪問控制、數據的編碼與解碼以及數據緩存的功能等。網卡的做用是充當電腦與網線之間的橋樑,它是用來創建局域網並鏈接到Internet的重要設備之一。

 

在整合型主板中常把聲卡、顯卡、網卡部分或所有集成在主板上。

 

 

英文名爲「Modem」,俗稱「貓」,即調制解調器,類型有內置式和外置式,有線式和無線式。調制解調器是經過電話線上網時必不可少的設備之一。它的做用是將電腦上處理的數字信號轉換成電話線傳輸的模擬信號。隨着ADSL寬帶網的普及,內置式調制解調器逐漸退出了市場。

 

  • 光驅
英文名爲「Optical Disk driver」,電腦用來讀寫光碟內容的機器,也是在臺式機和筆記本便攜式電腦裏比較常見的一個部件。隨着多媒體的應用愈來愈普遍,使得光驅在計算機諸多配件中已經成爲標準配置。光驅可分爲CD-ROM驅動器、DVD光驅(DVD-ROM)、康寶(COMBO)和DVD刻錄機(DVD-RAM)等。讀寫的能力和速度也日益提高,4× 16× 32× 40× 48×。

 

 

03 計算機的基本原理緩存

 

1.3  基本工做原理網絡

 

(1)數制轉換工具

 

10進制轉換成其餘的都是除以要轉換成的那個數,也就是說轉換成二進制的就除以2,轉換成八進制的就除以8,轉換成十六進制的就除以16,而後倒取餘數。佈局

 

不一樣的進位制數轉化爲十進制數:按權展開相加
十進制是權是10;二進制是權是2;十六進制是權是16;八進制是權是8;
例:110011(二進制數)=1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=32+16+2+1=51
1507(八進制數)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 839 
2AF5(十六進制數)=2*16^3 + A*16^2+ F*16^1 + 5*16^0 = 10997
性能

 

二進制換算八進制 
將二進制數從右到左,三位一組,不夠補0
例:二進制數10110111011換八進制數: 
010 110 111 011 
結果爲:2673 
測試

 

二進制轉換十六進制 
二進制數轉換爲十六進制數的方法也相似,從右到左,四位一組,不夠補0
如上題: 
0101 1011 1011 
結果爲:5BB

 

(2)機器數與碼制

 

各類數據在計算機中表示的形式稱爲機器數,其特色是採用二進制計數制,數的符號用01表示,小數點則隱含表示而不佔位置。機器數對應的實際數值稱爲真值。
       機器數有無符號數和帶符號數之分。無符號數表示正數,在機器數中沒有符號位。對於無符號數,若約定小數點的位置在機器數的最低位以後,則是純整數;若約定小數點的位置在機器數的最高位以前,則是純小數。對於帶符號數,機器數的最高位一晴地正負的符號位,其他位則表示數值。若約定小數點的位置在機器數的最低數值位以後,則是純整數;若約定小數點的位置 在機器數的最高數值位以前,則是純小數位。
        爲了便於運算,帶符號的機器右數可採用原碼,反碼和補碼等不一樣的編碼方法,機器數的這些編碼方法稱爲碼制。
1. 原碼錶示法
    數值X的原碼記爲[X]原,最高位是符號位,0表示正號,1表示負號,其他位表示數值的絕對值。
2.反碼錶示法
     數值X的原碼記爲[X]反,最高位是符號位,0表示正號,1表示負號,正數的反碼和原碼相同,負數的反碼則是其絕對值按位求反。
3.補碼錶示法
     數值X的原碼記爲[X]補,最高位是符號位,0表示正號,1表示負號,正數的補碼與其原碼和反碼相同,負數的補碼則等於其反碼的末尾加1
4.移碼錶示法
     .移碼錶示法是在數X上增長一個偏移量來定義的,經常使用於表示浮點數中的階碼。若是機器字長爲n,在偏移2的(n-1)次方的狀況下,只要將將碼的符號位取反即可得到相應的移碼錶示。

 

(3)漢字編碼

 

區位碼

 

   爲了使每個漢字有一個全國統一的代碼,1980年,我國頒佈了第一個漢字編碼的國家準: GB2312-80《信息交換用漢字編碼字符集》基本集,這個字符集是我國中文信息處理技術的發展基礎,也是目前國內全部漢字系統的統一標準。

 

 全部的國標漢字與符號組成一個94×94的矩陣。在此方陣中,每一行稱爲一個"",每一列稱爲一個"",所以,這個方陣實際上組成了一個有94個區(區號分別爲0 194)、每一個區內有94個位(位號分別爲0194)的漢字字符集。一個漢字所在的區號和位號簡單地組合在一塊兒就構成了該漢字的"區位碼"。在漢字的區位碼中,高兩位爲區號,低兩位爲位號。

 

在區位碼中,01-09區爲682個特殊字符,16~87區爲漢字區,包含6763個漢字 。其中16-55區爲一級漢字(3755個最經常使用的漢字,按拼音字母的次序排列)56-87區爲二級漢字(3008個漢字,按部首次序排列)

 

·  須要注意的是:區位碼一般都是用十進制表示的,例如字的區位碼爲1947,也就說它位於19區第47個字符。

 

國標碼

 

國家標準代碼,簡稱國標碼,是中華人民共和國的中文經常使用漢字編碼集。國家標準強制標準冠以「GB」。現時中華人民共和國官方強制使用GB 18030標準,但較舊的計算機仍然使用GB 2312國標碼 =區位碼(16進制化--區碼和位碼分別進行16進制轉化)+2020H

 

機內碼

 

計算機只識別由01組成的代碼,ASCII碼是英文信息處理的標準編碼,漢字信息處理也必須有一個統一的標準編碼。 漢字交換碼(國標碼)主要用於漢字信息交換,我國國家標準局於19815月頒佈了《信息交換用漢字編碼字符集——基本集》,代號爲GB2312-80,共對6763個漢字和682個圖形字符進行了編碼。

 

其編碼原則爲:漢字用兩個字節表示,原則上,兩個字節能夠表示 256×256=65536種不一樣的符號,做爲漢字編碼表示的基礎是可行的。但考慮到漢字編碼與其它國際通用編碼,如ASCII西文字符編碼的關係,我國國家標準局採用了加以修正的兩字節漢字編碼方案,只用了兩個字節的低7位。這個方案能夠容納128×128=16384種不一樣的漢字,但爲了與標準ASCII碼兼容,每一個字節中都不能再用32個控制功能碼和碼值爲32的空格以及127的操做碼。因此每一個字節只能有94個編碼。這樣,雙七位實際可以表示的字數是:94×94=8836個。

 

機內碼 = 國標碼 + 8080H
機內碼 = 區位碼(16進制化--區碼和位碼分別進行16進制轉化) + a0a0H

 

相互轉換

 

內碼轉換爲區位碼

 

         區位碼:  區碼=內碼高字節-0xa0

 

                       位碼=內碼低字節-0xa0

 

         例如:內碼爲:0xb9,0xfa

 

16進製表示的區位碼:0x19,0x5a

 

                  其區位碼(默認爲10進制):2590

 

區位碼轉換爲內碼

 

        內碼:  內碼高字節=區碼+0xa0

 

                  內碼低字節=位碼+0xa0

 

         例如:區位碼爲:2603

 

16進製表示的區位碼:0x1a,0x03

 

           其內碼(默認爲16進制)0xba,0xa3

 

字模

 

  漢字在顯示的時候,是以點陣的形式顯示出來的,常見到的有16*16點陣、24*24點陣、32*32點陣。好比說16*16點陣字模以下,共256Bits,佔用32 Bytes

 

0x00,0x00,0xf7,0x7e,0x95,0x04,0x95,0x04,0x96,0x74,0x96,0x54,0x95,0x54,0x95,0x54,0x95,0x54,0xf5,0x54,0x97,0x74,0x04,0x04,0x04,0x04,0x05,0x04,0x04,0x14,0x04,0x08

 

  字模顯示的時候,以兩個字節表示一行像素點,16行就構成了一個完整的字模。屏幕在顯示的時候,1顯示爲亮色,0顯示爲背景色,這樣就能把字體顯示出來。

 

 

 

字庫

 

  字庫,就是全部漢字字模的集合。顯然,在編排這些字模的時候須要必定的順序(規則),而這個規則就是「機內碼。根據機內碼的漢字佈局,將對應的漢字字模進行整合,造成字庫文件。在使用的時候,應用程序根據漢字的機內碼,從字庫中找到對應的存儲位置,取出字模,進行顯示。機內碼就是漢字在字庫中的索引。

 

在區位碼中,01-09區爲682個特殊字符,16~87區爲漢字區,有效漢字6768個。在製做字庫的時候把特殊字符刪除,只使用有效漢字區。也就是說咱們從第16區的第1位開始進行字模收集,當第16區收集結束,緊接着收集第17區,直到第87區編排結束。總共收集6768個漢字,佔用空間216576 Bytes

 

(4)CPU

 

CPU從邏輯上能夠劃分紅3個模塊,分別是控制器運算器內部寄存器,這三部分由CPU內部總線鏈接起來。以下所示:

 

 

 

控制器:控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操做控制器OC(Operation Controller)等,對協調整個電腦有序工做極爲重要。它根據用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,經過指令譯碼(分析)肯定應該進行什麼操做,而後經過操做控制器OC,按肯定的時序,向相應的部件發出微操做控制信號。操做控制器OC中主要包括節拍脈衝發生器、控制矩陣、時鐘脈衝發生器、復位電路和啓停電路等控制邏輯。

 

運算器:是運算器的核心。能夠執行算術運算(包括加減乘數等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的命令而進行動做,即運算單元所進行的所有操做都是由控制單元發出的控制信號來指揮的,因此它是執行部件。

 

內部寄存器:包括CPU片內緩存和寄存器組,是CPU中暫時存放數據的地方,裏面保存着那些等待處理的數據,或已經處理過的數據,CPU訪問寄存器所用的時間要比訪問內存的時間短。採用寄存器,能夠減小CPU訪問內存的次數,從而提升了CPU的工做速度。但由於受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分爲專用寄存器和通用寄存器。專用寄存器的做用是固定的,分別寄存相應的數據。而通用寄存器用途普遍並可由程序員規定其用途,通用寄存器的數目因微處理器而異。這個是咱們之後要介紹這個重點,這裏先提一下。

 

咱們將上圖細化一下,能夠得出CPU的工做原理歸納以下:

 

 

 

總的來講,CPU從內存中一條一條地取出指令和相應的數據,按指令操做碼的規定,對數據進行運算處理,直到程序執行完畢爲止。
   上圖中我沒有畫總線,只是用邏輯方式對其進行呈現。緣由早期Intel的微處理器,諸如8085,8086/8088CPU,廣泛採用了地址總線和數據總線複用技術,即將部分(或所有)地址總線與數據總線共用CPU的一些引腳。例如8086外部地址總線有20根,數據總線複用了地址總線的前16根引腳。複用的數據總線和地址總線雖然能夠少CPU的引腳數,但卻引入了控制邏輯及操做序列上的複雜性。因此,自80286開始,Intel的CPU才採用分開的地址總線和數據總線。
   無論是複用仍是分開,對咱們理解CPU的運行原理沒啥影響,上圖沒畫總線的目的就是怕有些人太過於追求細節,一頭紮下去,浮不起來,不能從宏觀上藐視敵人。
   總結一下,CPU的運行原理就是控制單元在時序脈衝的做用下,將指令計數器裏所指向的指令地址(這個地址是在內存裏的)送到地址總線上去,而後CPU將這個地址裏的指令讀到指令寄存器進行譯碼。對於執行指令過程當中所須要用到的數據,會將數據地址也送到地址總線,而後CPU把數據讀到CPU的內部存儲單元(就是內部寄存器)暫存起來,最後命令運算單元對數據進行處理加工。周而復始,一直這樣執行下去
  

 

 

 

 關於一些筆記

關於編碼   http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

32位的系統最多可使用 4 G 的內存 64位的系統可使用16T 左右的內存。

變量的命名規則:

  01 具備描述性,見名知意

  02 由數字,字母,下劃線組成

  03 不能以數字開頭

  04 不能夠是保留字符

  05 變量名不能是中文

  06 在python中 區分大小寫

如下關鍵詞不能是變量:

   and  as  assert  break  class  continue def  del  elif  else  except  exec  finally  for  from  global  if  import  in  is  lambda  not  or  pass  print  raise      return  try  while  with  yield

在python 2.7 中寫入中文,須要在程序第一行加上

 #!-*- coding:utf-8 -*-

input 接受的全部數據都會默認看成字符串處理

if 後面必須加 : (縮進)

tab 鍵 != 4個空格

縮進級別必須保持一致

相關文章
相關標籤/搜索