前言
什么是計(jì)算機(jī)語言
計(jì)算機(jī)就是一臺用來計(jì)算的機(jī)器,人讓計(jì)算機(jī)干什么計(jì)算機(jī)就得干什么!
需要通過計(jì)算機(jī)的語言來控制計(jì)算機(jī)(也就是編程語言)!
計(jì)算機(jī)語言其實(shí)和人類的語言沒有本質(zhì)的區(qū)別,不同點(diǎn)就是交流的主體不同!
計(jì)算機(jī)語言發(fā)展經(jīng)歷了三個(gè)階段:
1). 機(jī)器語言
機(jī)器語言通過二進(jìn)制編碼來編寫程序
執(zhí)行效率好,編寫起來太麻煩
2). 符號語言(匯編)
使用符號來代替機(jī)器碼
編寫程序時(shí),不需要使用二進(jìn)制, 而是直接編寫符號
編寫完成后,需要將符號轉(zhuǎn)換為機(jī)器碼,然后再由計(jì)算機(jī)執(zhí)行符號轉(zhuǎn)換為機(jī)器碼的過程稱為匯編
將機(jī)器碼轉(zhuǎn)換為符號的過程,稱為反匯編
匯編語言一般只適用于某些硬件,兼容性比較差
3). 高級語言
高級語言的語法基本和現(xiàn)在英語語法類似,并且和硬件的關(guān)系沒有那么緊密了。也就是說我們通過高級語言開發(fā)程序可以在不同的硬件系統(tǒng)中執(zhí)行
并且高級語言學(xué)習(xí)起來也更加的容易,現(xiàn)在我們知道的語言基本都是高級語言 如:C、 C++、C#、Java、JavaScript、Python 等…
編譯型語言和解釋型語言
計(jì)算機(jī)只能識別二進(jìn)制編碼(機(jī)器碼),所以任何的語言在交由計(jì)算機(jī)執(zhí)行時(shí)必須要先轉(zhuǎn)換為機(jī)器碼,也就是像 print(‘hello’) 必須要轉(zhuǎn)換為類似 1010101 這樣的機(jī)器碼。
根據(jù)轉(zhuǎn)換時(shí)機(jī)的不同,語言分成了兩大類:
1). 編譯型語言
如:C語言
編譯型語言,會在代碼執(zhí)行前將代碼編譯為機(jī)器碼,然后將機(jī)器碼交由計(jì)算機(jī)執(zhí)行
執(zhí)行過程:a(源碼) --編譯–> b(編譯后的機(jī)器碼)
特點(diǎn):
執(zhí)行速度特別快
跨平臺性比較差
2). 解釋型語言
如:Python JS Java
解釋型語言,不會在執(zhí)行前對代碼進(jìn)行編譯,而是在執(zhí)行的同時(shí)一邊執(zhí)行一邊編譯
執(zhí)行過程:a(源碼)–解釋器–> 解釋執(zhí)行
特點(diǎn):
執(zhí)行速度比較慢
跨平臺性比較好
下面我們切入正題,談?wù)凱ython。
Python的介紹
Python是解釋型語言。
Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/),是一種廣泛使用的高級編程語言,屬于通用型編程語言,由吉多·范羅蘇姆創(chuàng)造,第一版發(fā)布于1991年??梢砸曋疄橐环N改良(加入一些其他編程語言的優(yōu)點(diǎn),如面向?qū)ο螅┑腖ISP。作為一種解釋型語言,Python的設(shè)計(jì)哲學(xué)強(qiáng)調(diào)代碼的可讀性和簡潔的語法(尤其是使用空格縮進(jìn)劃分代碼塊,而非使用大括號或者關(guān)鍵詞)。相比于C++或Java,Python讓開發(fā)者能夠用更少的代碼表達(dá)想法。不管是小型還是大型程序,該語言都試圖讓程序的結(jié)構(gòu)清晰明了。
Python的用途:
WEB應(yīng)用
Facebook 豆瓣
爬蟲程序
科學(xué)計(jì)算
自動化運(yùn)維
大數(shù)據(jù)(數(shù)據(jù)清洗)
云計(jì)算
桌面軟件/游戲
人工智能
Python開發(fā)環(huán)境搭建
開發(fā)環(huán)境搭建就是安裝Python的解釋器
Python的解釋器分類:
CPython(官方)
用c語言編寫的Python解釋器PyPy
用Python語言編寫的Python解釋器IronPython
用.net編寫的Python解釋器JPython
用Java編寫的Python解釋器
步驟:
1.下載安裝包 python-3.6.exe
2.安裝(傻瓜式安裝, 默認(rèn)選項(xiàng)…)
安裝完成可以看到以下幾個(gè)程序:
3.打開命令行窗口,輸入python 出現(xiàn)如下內(nèi)容
Python的交互界面
當(dāng)我們通過Windows命令行來輸入Python,所進(jìn)入到的界面就是Python的交互界面
結(jié)構(gòu):
版本和版權(quán)聲明:
1
2
命令提示符:
1
在命令提示符后可以直接輸入Python的指令!輸入完的指令將會被Python的解釋器立即執(zhí)行!
安裝Python的同時(shí),會自動安裝一個(gè)Python的開發(fā)工具IDLE,通過IDLE也可以進(jìn)入到交互模式。但是不同的是,在IDLE中可以通過TAB鍵來查看語句的提示。
IDLE實(shí)際上就是一個(gè)交互界面,但是他可以有一些簡單的提示,并且可以將代碼保存。
注意:交互模式只能你輸入一行代碼,它就是執(zhí)行一行,所以他并不適用于我們?nèi)粘5拈_發(fā)!
僅可以用來做一些日常的簡單的測試!
我們一般會將Python代碼編寫到一個(gè)py文件中,然后通過python指令來執(zhí)行
文件中的代碼。
Python和Sublime的整合
1.在Sublime中執(zhí)行Python代碼,按 ctrl + b 可以自動在Sublime內(nèi)置的控制臺中執(zhí)行
這種執(zhí)行方式,在某些版本的Sublime中對中文支持不好,并且不能使用input()函數(shù)。
2.使用SublimeREPL來運(yùn)行python代碼
如下圖:選擇SublimeREPL-> Python來執(zhí)行Python代碼
但是這樣很麻煩。為方便我們可以設(shè)置快捷鍵,按f5則自動執(zhí)行當(dāng)前的Python代碼。
如下設(shè)置快捷鍵來執(zhí)行python代碼呢?
找到Preferences–>Key Bindings ,然后復(fù)制下面的內(nèi)容到右邊的中括號內(nèi)。然后保存。
這樣我們就可以按F5快捷鍵來自動執(zhí)行當(dāng)前的Python代碼了。
1
Python的幾個(gè)基本概念
1.表達(dá)式
表達(dá)式就是一個(gè)類似于數(shù)學(xué)公式的東西
比如:10 + 5 8 - 4
表達(dá)式一般僅僅用了計(jì)算一些結(jié)果,不會對程序產(chǎn)生實(shí)質(zhì)性的影響
如果在交互模式中輸入一個(gè)表達(dá)式,解釋器會自動將表達(dá)式的結(jié)果輸出
2.語句
在程序中語句一般需要完成某種功能,比如打印信息、獲取信息、為變量賦值
比如:
1
2
3
4
5
6
7
語句的執(zhí)行一般會對程序產(chǎn)生一定的影響
在交互模式中不一定會輸出語句的執(zhí)行結(jié)果
3.程序(program)
程序就是由一條一條的語句和一條一條的表達(dá)式構(gòu)成的。
4.函數(shù)(function)
函數(shù)就是一種語句,函數(shù)專門用來完成特定的功能
函數(shù)長的形如:xxx()
函數(shù)的分類:
1). 內(nèi)置函數(shù)
由Python解釋器提供的函數(shù),可以在Python中直接使用
2). 自定義函數(shù)
由程序員自主的創(chuàng)建的函數(shù)
當(dāng)我們需要完成某個(gè)功能時(shí),就可以去調(diào)用內(nèi)置函數(shù),或者自定義函數(shù)
函數(shù)的兩個(gè)要素:
1). 參數(shù)
()中的內(nèi)容就是函數(shù)的參數(shù)
函數(shù)中可以沒有參數(shù),也可以有多個(gè)參數(shù),多個(gè)參數(shù)之間使用,隔開
2). 返回值
返回值是函數(shù)的返回結(jié)果,不是所有的函數(shù)都有返回值
Python的基本語法
在Python中嚴(yán)格區(qū)分大小寫
Python中的每一行就是一條語句,每條語句以換行結(jié)束
Python中每一行語句不要過長(規(guī)范中建議每行不要超過80個(gè)字符)
一條語句可以分多行編寫,多行編寫時(shí)語句后邊以結(jié)尾
Python是縮進(jìn)嚴(yán)格的語言,所以在Python中不要隨便寫縮進(jìn)
在Python中使用#來表示注釋,#后的內(nèi)容都屬于注釋,注釋的內(nèi)容將會被解釋器所忽略
我們可以通過注釋來對程序進(jìn)行解釋說明,一定要養(yǎng)成良好的編寫注釋的習(xí)慣
注釋要求簡單明了,一般習(xí)慣上#后邊會跟著一個(gè)空格
字面量和變量
字面量就是一個(gè)一個(gè)的值,比如:1,2,3,4,5,6,‘HELLO’
字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量
變量(variable)變量可以用來保存字面量,并且變量中保存的字面量是不定的
變量本身沒有任何意思,它會根據(jù)不同的字面量表示不同的意思
一般我們在開發(fā)時(shí),很少直接使用字面量,都是將字面量保存到變量中,通過變量來引用字面量
數(shù)據(jù)類型
數(shù)據(jù)類型指的就是變量的值得類型,也就是可以為變量賦哪些值
在Python中,能夠直接處理的數(shù)據(jù)類型有以下幾種:整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值、列表、元組、字典、集合。
以后我們詳細(xì)介紹這幾個(gè)數(shù)據(jù)類型。
對象(object)
Python是一門面向?qū)ο蟮恼Z言
一切皆對象!
程序運(yùn)行當(dāng)中,所有的數(shù)據(jù)都是存儲到內(nèi)存當(dāng)中然后再運(yùn)行的!
對象就是內(nèi)存中專門用來存儲指定數(shù)據(jù)的一塊區(qū)域
對象實(shí)際上就是一個(gè)容器,專門用來存儲數(shù)據(jù)
像我們之前學(xué)習(xí)的數(shù)值、字符串、布爾值、None都是對象
對象的結(jié)構(gòu)
每個(gè)對象中都要保存三種數(shù)據(jù)
1). id(標(biāo)識)
id用來標(biāo)識對象的唯一性,每一個(gè)對象都有唯一的id
對象的id就相當(dāng)于人的身份證號一樣
可以通過id()函數(shù)來查看對象的id
id是由解析器生成的,在CPython中,id就是對象的內(nèi)存地址
對象一旦創(chuàng)建,則它的id永遠(yuǎn)不能再改變
2). type(類型)
類型用來標(biāo)識當(dāng)前對象所屬的類型
比如:int str float bool
類型決定了對象有哪些功能
通過type()函數(shù)來查看對象的類型
Python是一門強(qiáng)類型的語言,對象一旦創(chuàng)建類型便不能修改
3). value(值)
值就是對象中存儲的具體的數(shù)據(jù)
對于有些對象值是可以改變的
對象分成兩大類,可變對象 不可變對象
可變對象的值可以改變
不可變對象的值不能改變
變量和對象
對象并沒有直接存儲到變量中,在Python中變量更像是給對象起了一個(gè)別名
變量中存儲的不是對象的值,而是對象的id(內(nèi)存地址),
當(dāng)我們使用變量時(shí),實(shí)際上就是在通過對象id在查找對象
變量中保存的對象,只有在為變量重新賦值時(shí)才會改變
變量和變量之間是相互獨(dú)立的,修改一個(gè)變量不會影響另一個(gè)變量
類型轉(zhuǎn)換
所謂的類型轉(zhuǎn)換,將一個(gè)類型的對象轉(zhuǎn)換為其他對象
類型轉(zhuǎn)換不是改變對象本身的類型,而是根據(jù)當(dāng)前對象的值創(chuàng)建一個(gè)新對象
運(yùn)算符(操作符)
運(yùn)算符可以對一個(gè)值或多個(gè)值進(jìn)行運(yùn)算或各種操作
比如 + 、-、= 都屬于運(yùn)算符
運(yùn)算符的分類:
1.算術(shù)運(yùn)算符
2.賦值運(yùn)算符
3.比較運(yùn)算符(關(guān)系運(yùn)算符)
4.邏輯運(yùn)算符
5.條件運(yùn)算符(三元運(yùn)算符)