?????最近學(xué)習(xí)的知識(shí)點(diǎn),為防止遺忘,因此在這里做個(gè)小結(jié),順便復(fù)習(xí)。
一、計(jì)算機(jī)語(yǔ)言
1.1? 計(jì)算機(jī)語(yǔ)言的基本概念
????????計(jì)算機(jī)語(yǔ)言(computer language)指用于人與計(jì)算機(jī)之間的通信,傳遞信息的媒介。
????????字符 數(shù)字 語(yǔ)法規(guī)則,組成計(jì)算機(jī)的各種語(yǔ)令,即計(jì)算機(jī)語(yǔ)言。
????????20世紀(jì)40年代,手動(dòng)控制計(jì)算機(jī)(計(jì)算機(jī)龐大? 成本高)--> 用程序解決控制計(jì)算機(jī)(楚澤 德國(guó)工程師)--> 出現(xiàn)新的程序方式和設(shè)計(jì)模型(面向?qū)ο螅?/p>
1.2? 計(jì)算機(jī)語(yǔ)言的發(fā)展
????????a)? 機(jī)器語(yǔ)言? 0 和1 組成的二進(jìn)制數(shù)
????????b)??匯編語(yǔ)言 在機(jī)器語(yǔ)言基礎(chǔ)之上發(fā)展起來(lái),多了字母和符號(hào),便于語(yǔ)言的記憶性和識(shí)別性
????????c)? 高級(jí)計(jì)算機(jī)語(yǔ)言? Java? Python? PHP.......,分為解釋型和編譯型兩種語(yǔ)言。
1.3? 解析型和編譯型語(yǔ)言的區(qū)別
????????共同點(diǎn):必須要轉(zhuǎn)換成101010 機(jī)器碼,計(jì)算機(jī)才能夠識(shí)別。
1.3.1? 編譯型語(yǔ)言
????????如:C語(yǔ)言...
????????X(源碼) --> 編譯 --> Y(編譯后的機(jī)器碼),然后交由計(jì)算機(jī)執(zhí)行
????????特點(diǎn):執(zhí)行速度快,但是跨平臺(tái)性不好
1.3.2? 解釋型語(yǔ)言
????????如:Python
????????X(源碼)--> 解釋器 -->? 解釋執(zhí)行
????????特點(diǎn):執(zhí)行速度比較慢,但是跨平臺(tái)性比較好
二、Python語(yǔ)言
2.1? 官方對(duì)Python的介紹
????????Python是一款易于學(xué)習(xí)且功能強(qiáng)大的編程語(yǔ)言,它具有高效率的數(shù)據(jù)結(jié)構(gòu),能夠簡(jiǎn)單又有效地實(shí)現(xiàn)面向?qū)ο笞兂?。Python簡(jiǎn)潔的語(yǔ)法與動(dòng)態(tài)輸入之特性,加之其解釋性語(yǔ)言的本質(zhì),使得它成為一種在多種領(lǐng)域與絕大多數(shù)平臺(tái)都能進(jìn)行腳本編寫(xiě)與應(yīng)用快速開(kāi)發(fā)工作的理想語(yǔ)言。
? ? ? ? Python的創(chuàng)始者:吉多 范羅蘇姆,業(yè)界人稱“龜叔”。
2.2? Python的特色
? ??????a)? 簡(jiǎn)單,相比Java而言,跟英語(yǔ)才不多;
? ??????b)? 易于學(xué)習(xí),零基礎(chǔ)小白建議第一么語(yǔ)言學(xué)習(xí)Python;
? ??????c)? 自由且開(kāi)放,誰(shuí)都可以給它做貢獻(xiàn);
? ??????d)? 跨平臺(tái),可嵌入型,豐富的庫(kù),標(biāo)準(zhǔn)庫(kù)多。
? ??????注:Life is short,I use Python。
2.3? Python可以做什么
? ??????a)? 軟件開(kāi)發(fā)
? ??????b)? 科學(xué)計(jì)算? NumPy? 繪制2D? 3D
? ??????c)??自動(dòng)化運(yùn)維
? ??????d)? 云計(jì)算 OpenStack(基于Python開(kāi)發(fā)的)
? ??????e)? Web開(kāi)發(fā)
????????f)? 網(wǎng)絡(luò)爬蟲(chóng)(無(wú)法撼動(dòng)的地位)
????????g)? 人工智能(機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí))
2.4? Python之禪
? ??????“import this”
? ??????優(yōu)美勝于丑陋(Python 以編寫(xiě)優(yōu)美的代碼為目標(biāo))
? ??????明了勝于晦澀(優(yōu)美的代碼應(yīng)當(dāng)是明了的,命名規(guī)范,風(fēng)格相似)
? ??????簡(jiǎn)潔勝于復(fù)雜(優(yōu)美的代碼應(yīng)當(dāng)是簡(jiǎn)潔的,不要有復(fù)雜的內(nèi)部實(shí)現(xiàn))
? ??????復(fù)雜勝于凌亂(如果復(fù)雜不可避免,那代碼間也不能有難懂的關(guān)系,要保持接口簡(jiǎn)潔)
? ??????扁平勝于嵌套(優(yōu)美的代碼應(yīng)當(dāng)是扁平的,不能有太多的嵌套)
? ??????間隔勝于緊湊(優(yōu)美的代碼有適當(dāng)?shù)拈g隔,不要奢望一行代碼解決問(wèn)題)
? ??????可讀性很重要(優(yōu)美的代碼是可讀的)
? ??????即便假借特例的實(shí)用性之名,也不可違背這些規(guī)則(這些規(guī)則至高無(wú)上)
? ??????不要包容所有錯(cuò)誤,除非你確定需要這樣做(精準(zhǔn)地捕獲異常,不寫(xiě) except:pass 風(fēng)格的代碼)
? ??????當(dāng)存在多種可能,不要嘗試去猜測(cè)
? ??????而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)
? ??????雖?然這并不容易,因?yàn)槟悴皇?Python 之父(這里的 Dutch 是指 Guido )
? ??????做也許好過(guò)不做,但不假思索就動(dòng)手還不如不做(動(dòng)手之前要細(xì)思量)
? ??????如果你無(wú)法向人描述你的方案,那肯定不是一個(gè)好方案;反之亦然(方案測(cè)評(píng)標(biāo)準(zhǔn))
? ??????命名空間是一種絕妙的理念,我們應(yīng)當(dāng)多加利用(倡導(dǎo)與號(hào)召)
三、搭建環(huán)境
3.1? Python的解釋器
3.1.1? Python的解釋器分類
????????CPython(官方) 用C語(yǔ)言編寫(xiě)的Python解釋器
????????PyPy? 用Python編寫(xiě)的解釋器
????????IronPython? 用.net編寫(xiě)的Python解釋器
????????JPython 用Java編寫(xiě)的Python解釋器
3.1.2 Pthon的交互模式
