## 計算機組成
學習目標:
1. 能夠說出計算機有哪兩部分組成
2. 能夠說出操作系統的作用
* * *
## 什么是計算機?
計算機(computer)俗稱電腦,是現代一種用于高速計算的電子機器,可以進行數值計算,又可以進行邏輯判斷,還具有存儲記憶功能,且能夠按照程序的運行,自動、高速處理數據,通俗理解就是一個存儲和計算數據的電子設備。
> 計算機是20世紀最先進的科學技術發明之一。
## 計算機是由什么組成的?
**一個完整的計算機系統,是由**`硬件系統`**和**`軟件系統`**兩大部分組成的。**

### 1\. 硬件系統:
主要分為主機和外設兩部分,是指那些構成計算機系統的物理實體,它們主要由各種各樣的電子器件和機電裝置組成。
從ENIAC(世界上第一臺計算機)到當前最先進的計算機,硬件系統的設計采用的都是**馮·諾依曼體系結構**。

> `運算器`: 負責數據的算術運算和邏輯運算,即數據的加工處理。
>
> `控制器`: 是整個計算機的中樞神經,分析程序規定的控制信息,并根據程序要求進行控制,協調計算機各部分組件工作及內存與外設的訪問等。
>
> > 運算器和控制器統稱中央處理器(即CPU)
>
> `存儲器`: 實現記憶功能的部件,用來存儲程序、數據和各種信號、命令等信息,并在需要時提供這些信息。
>
> `輸入設備`: 實現將程序、原始數據、文字、字符、控制命令或現場采集的數據等信息輸入到計算機。
>
> `輸出設備`: 實現將計算機處理后生成的中間結果或最后結果(各種數據符號及文字或各種控制信號等信息)輸出出來。
### 2\. 軟件系統:
主要分為系統軟件和應用軟件,是指計算機運行所需的各種各樣的計算機程序。
系統軟件的任務是既要保證計算機硬件的正常工作,又要使計算機硬件的性能得到充分發揮,并且為計算機用戶提供一個比較直觀、方便和友好的使用界面。
**操作系統**:是一種方便用戶管理和控制計算機軟硬件資源的系統軟件,同時也是一個大型的軟件系統,其功能復雜,體系龐大,在整個計算機系統中具有承上啟下的地位。我們操作計算機實際上是通過操作系統來進行的,它是所有軟件的基礎和核心。
**語言處理程序**:也稱為編譯程序,作用是把程序員用某種編程語言(如Python)所編寫的程序,翻譯成計算機可執行的機器語言。機器語言也被稱為機器碼,是可以通過CPU進行分析和執行的指令集。

## 3\. 計算機是如何處理程序的?
按照馮·諾依曼存儲程序的原理,計算機的工作流程大致如下:
1. 用戶打開程序,程序開始執行;
2. 操作系統將程序內容和相關數據送入計算機的內存;
3. CPU根據程序內容從內存中讀取指令;
4. CPU分析、處理指令,并為取下一條指令做準備;
5. 取下一條指令并分析、處理,如此重復操作,直至執行完程序中全部指令,最后將計算的結果放入指令指定的存儲器地址中。

## 4\. 編程語言是什么?
是用來定義**計算機程序**的形式語言。我們通過編程語言來編寫程序代碼,再通過語言處理程序執行向計算機發送指令,讓計算機完成對應的工作。
> 簡單來說,編程語言就是人類和計算機進行交流的語言。
## 5\. 什么是Python?
Python就是一門編程語言,而且是現在世界上最流行的編程語言之一。
- 計算機組成原理和Python基礎知識
- 計算機組成原理
- 編程語言和Python
- 開發第一個Python程序
- 注釋
- 變量以及類型
- 標識符和關鍵字
- 輸出
- 輸入
- 運算符
- 數據類型轉換
- 判斷語句和循環語句
- 判斷語句介紹
- if語句
- 比較、關系運算符
- if...else...語句格式
- if...elif...else語句格式
- if語句的嵌套
- if應用:猜拳游戲
- 循環語句介紹
- while循環
- while循環應用
- while循環的嵌套以及應用
- for循環
- break和continue
- 字符串、列表、元組、字典
- 字符串介紹
- 字符串輸出
- 字符串輸入
- 下標和切片
- 字符串常見操作
- 列表介紹
- 列表的循環遍歷
- 列表的常見操作
- 列表的嵌套
- 元組
- 字典介紹
- 字典的常見操作1
- 字典的常見操作2
- 字典的遍歷
- 集合(擴展)
- 公共方法
- 4.函數(一)
- 4.1.函數介紹
- 4.2.函數定義和調用
- 4.3.函數的文檔說明
- 4.4.函數參數(一)
- 4.5.函數返回值(一)
- 4.6.函數的嵌套調用
- 4.7.函數應用:打印圖形和數學計算
- 5.函數(二)
- 5.1.局部變量
- 5.2.全局變量
- 5.3.多函數程序的基本使用流程
- 5.4.函數返回值(二)
- 5.5.函數參數(二)
- 5.6.拆包、交換變量的值
- 5.7.引用(一)
- 5.8.可變、不可變類型
- 5.9.引用(二)
- 5.10.函數使用注意事項
- 6.強化練習
- 6.1.函數應用:學生管理系統
- 6.2.遞歸函數
- 6.3. 匿名函數
- 6.4.列表推導式
- 6.5.set、list、tuple
- 6.6.高階函數: map reduce filter
- 7.文件操作,綜合應用
- 7.1.文件操作介紹
- 7.2.文件的讀寫
- 7.3.應用1:制作文件的備份
- 7.4.文件的相關操作
- 7.5.應用:批量修改文件名
- 7.6.綜合應用:學生管理系統(文件版)
- 8.面向對象(上)
- 8.1.認識面向對象編程
- 8.2.類和對象
- 8.3.定義類
- 8.4.創建對象
- 8.5.添加和獲取對象的屬性
- 8.6.在方法內通過self獲取對象屬性
- 8.7.魔法方法 - init()
- 8.8.魔法方法 - 有參數的__init__()方法
- 8.9.魔法方法 - str()方法
- 8.10.魔法方法 - del()方法
- 8.11.實操案例 - 烤土豆
- 9.面向對象(中)
- 9.1.實操案例 - 放家具
- 9.2.繼承的概念
- 9.3.單繼承
- 9.4.多繼承
- 9.5.子類重寫父類的同名屬性和方法
- 9.6.子類調用父類同名屬性和方法
- 9.7.多層繼承
- 9.8.通過super()來調用父類的方法
- 10.面向對象(下)
- 10.1.私有屬性和私有方法
- 10.2.修改私有屬性的值
- 10.3.多態
- 10.4.類屬性和實例屬性
- 10.5.靜態方法和類方法
- 11.異常處理與模塊初識
- 11.1.異常
- 11.2.捕獲異常
- 11.3.異常的傳遞
- 11.4.拋出自定義的異常
- 11.5.獲取異常完整信息的正確姿勢
- 11.6.認識模塊
- 11.7.開發模塊
- 11.8.模塊中的__all__(未完成)
- 11.9.python中的包(未完成)
- 12.課后加餐
- 12.1.基礎應用 - 進銷存管理系統(未完成)
- 12.2.基礎應用 - 員工信息管理系統(未完成)
- 12.1.編碼規范 - PEP8編碼規范(未完成)