【一】編程和編程語言是什么
【1】什么是編程
【2】什么是編程語言
- 人和人之間都會進行交流
- 人和人之間交流的媒介就是語言
- 編程語言就是人與計算機之間進行交流的語言
【3】為什么要出現編程語言
- 最根本的原因就是計算機無法識別人類的語言
- 于是大家光絲記憶就開發了計算機能識別的語言
【4】為什么要做編程
- 編程就是為了讓計算機能夠理解人類的所下達的指定,然后讓計算機實現自動完成任務的功能
- 在奴隸社會的時候,奴隸主會勞役下面的努力
- 人是需要吃飯和喝水的
【二】計算機的組成原理
【1】計算機的五大組成部分
(1)控制器
(2)運算器
- 相當于我們大腦進行的邏輯運算和數字運算的功能
- 邏輯運算包括是或非
- 數字運算包括加減乘除
(3)存儲器
[1]內存
- 和我們短期記憶一樣是臨時存儲數據的
- 斷電重啟數據就消失了
[2]外存
-
硬盤
- 機械硬盤
- 可以存儲大量的數據,但是讀取速度比較慢,并且價格很低
- 固態硬盤
- 可以存儲大量的數據,但是讀取速度會非常快,價格太高了
-
可以持久性的存儲數據,并且斷電不會消失
(4)輸入設備
(5)輸出設備
(6)總結
- 控制器相當于人類的大腦 控制去全身和計算
- 內存像是人的記憶 臨時儲存
- 硬盤像是人的筆記本 永久儲存
- 輸入設備像是人的眼睛 耳朵 嘴巴 接受外部的信息存入內存
- 輸出設備像是人的表情 反饋結果
(7)程序的執行過程
【2】計算機的主要三大核心硬件
(1)CPU
- 控制器 + 運算器 = CPU
- 中央控制處理器
- 控制整個電腦的調度和運算的
(2)內存
- 臨時存儲數據的地方
- 雖然斷電數據消失,數據安全性低,但是讀取速度極快
(3)硬盤
- 持久化存儲數據的地方
- 雖然斷電數據不消失,但是數據安全性高,只要你的硬盤不發生損壞,就不會造成數據的丟失。讀取速度慢
【三】操作系統
【1】操作系統的由來
【2】操作系統
- 操作系統就是在硬件的基礎上實現功能和接口的封裝,我們可以通過這些接口和程序進行硬件的調度
【3】操作系統的開發
- 所有開發者遵循共同的一套規范
- 下次誰需要這個功能誰就來直接拿著用
【4】常見的操作系統
(1)Windows平臺
- Window7
- Windowxp
- Window 8
- Window 10
- Window 11
(2)Mac平臺
(3)Linux平臺
(4)Andoraid
【5】什么是系統軟件什么是操作軟件
(1)什么是系統軟件
- 系統軟件是就是建立在硬件至上的軟件,負責調度整個硬件
- Window、MacOS、Linux
- 功能包括調度計算機服務,讀取文件,進程管理 ...
(2)什么是操作軟件
[1]系統軟件
[2]應用軟件
- 就是我們基于Window系統至上安裝的其他軟件
- QQ、微信、QQ音樂
【6】計算機系統的三層架構
- 底層就是硬件層
- 中間層就是操作系統層
- 最上面是應用層
【7】平臺
-
平臺就是你的操作系統 + 你的硬件
-
Window平臺
-
MacOS平臺
【四】編程語言
【1】機器語言
(1)什么是機器語言
- 機器語言就是計算機可以理解的語言,操作計算機的系統硬件
- 我們可以控制高低電頻的變化組成一系列的指定去操作我們的系統硬件
(2)機器指令
- 控制高低電頻的變化組成一系列的指令就叫做機器語言 能控制電腦硬件
(3)怎么寫機器指令
- 首先你得必須記住計算機的全部指令及核心代碼的含義
- 在編寫機器指令程序的時候需要自己處理每一條數據,以及數據隨時可可能會發生的意外情況
- 一般發生在源頭廠家中,原頭廠家調控硬件內部設備的時候會用得到
(4)機器語言的例子
'''指令部份的示例'''
0000 代表 加載(LOAD)
0001 代表 存儲(STORE)
...
LOAD 0000 # 加載寄存器A
STORE 0001 # 存儲到寄存器B
'''暫存器部份的示例'''
0000 代表暫存器 A
0001 代表暫存器 B
...
'''存儲器部份的示例'''
000000000000 代表地址為 0 的存儲器
000000000001 代表地址為 1 的存儲器
000000010000 代表地址為 16 的存儲器
100000000000 代表地址為 2^11 的存儲器
(5)機器語言的優缺點
- 優點
- 缺點
- 開發效率低
- 跨平臺性很差
- 理解原碼、反碼、補碼、位運算( & | )
底層單位數據的換算
# 00000001 表示1字節,有256種排列方式,從0到255。
# 八個字節表示一個 bytes
# 8 字節 = 1 bytes
# 1024 bytes = 1 kB
# 1024 kb = 1 MB
# 1024 mb = 1GB
# 1024 GB = 1 TB
# 1024 TB = 1 ZB
【2】匯編語言
- 匯編語言仍然可以直接操作底層硬件,但是美國人可以用一個字母或者一串字母來聲明這串機器指令代表的含義
- 但是對比與機器語言來書,匯編語言就是一種進步,一定程度上降低了開發成本
(1)什么是匯編語言
- 匯編語言其實就是用一個英文字母或者一串單詞來代表機器語言的語言
(2)匯編語言示例
; hello.asm
section .data ; 數據段聲明
msg db "Hello, world!", 0xA ; 要輸出的字符串
len equ $ - msg ; 字串長度
section .text ; 代碼段聲明
global _start ; 指定入口函數
_start: ; 在屏幕上顯示一個字符串
mov edx, len ; 參數三:字符串長度
mov ecx, msg ; 參數二:要顯示的字符串
mov ebx, 1 ; 參數一:文件描述符(stdout)
mov eax, 4 ; 系統調用號(sys_write)
int 0x80 ; 調用內核功能
; 退出程序
mov ebx, 0 ; 參數一:退出代碼
mov eax, 1 ; 系統調用號(sys_exit)
int 0x80 ; 調用內核功能
(3)匯編語言的優缺點
【3】高級語言
(1)什么是高級語言
- 高級語言就是從人類的角度出發,用人的思維將人的語言轉換為計算機可以識別的語言
- 我們不需要考慮底層硬件而是直接操作系統
- 更貼近與人類
(2)高級語言的分類
(3)編譯型語言
[1]什么是編譯型語言
[2]優缺點
- 優點:
- 一次編譯處處執行,只需要編譯一次,下一次可以直接拿過來用,效率很高
- 缺點
[3]編譯型語言的代表
(4)解釋型語言
[1]什么是解釋型語言
[2]解釋型語言的優缺點
[3]編譯語言代表
【4】開發語言對比
(1)執行效率
(2)開發效率
(3)跨平臺性
【五】Python語言
【1】Python語言的應用領域
【2】Python的解釋器的種類
(1)Cpython解釋器
(2)jpython
(3)ipython