- Python編程導(dǎo)論(第2版)
- (美)約翰·谷泰格
- 1288字
- 2020-06-23 13:41:15
第2章 Python簡(jiǎn)介
盡管每種編程語(yǔ)言都具有各自的特點(diǎn)(實(shí)際上這些特點(diǎn)沒(méi)有語(yǔ)言設(shè)計(jì)者宣稱的那么多),但在某些方面,它們還是有共同之處的。
? 低級(jí)編程與高級(jí)編程:二者之間的區(qū)別是,編寫程序時(shí),我們是使用機(jī)器層次的指令和數(shù)據(jù)對(duì)象(例如,將64位數(shù)據(jù)從一個(gè)位置移動(dòng)到另一個(gè)位置),還是使用語(yǔ)言設(shè)計(jì)者提供的更為抽象的操作(例如,在屏幕上彈出一個(gè)菜單)。
? 通用性與專注于某一應(yīng)用領(lǐng)域:指編程語(yǔ)言中的基本操作是廣泛適用的還是只針對(duì)某個(gè)領(lǐng)域。例如,SQL設(shè)計(jì)的目的是使你更容易地從關(guān)系數(shù)據(jù)庫(kù)提取信息,但你不能指望它去建立一個(gè)操作系統(tǒng)。
? 解釋運(yùn)行與編譯運(yùn)行:指程序員編寫的指令序列,即源代碼是直接執(zhí)行(通過(guò)解釋器)的,還是要先轉(zhuǎn)換(通過(guò)編譯器)成機(jī)器層次的基礎(chǔ)操作序列。(在早期的計(jì)算機(jī)中,人們必須使用與機(jī)器編碼非常相似的語(yǔ)言來(lái)編寫源代碼,這種代碼可以直接被計(jì)算機(jī)硬件解釋執(zhí)行。)這兩種方法各有優(yōu)勢(shì)。使用解釋型語(yǔ)言編寫的程序更易調(diào)試,因?yàn)榻忉屍骺梢越o出與源代碼相關(guān)的錯(cuò)誤信息。而編譯型語(yǔ)言編寫的程序速度更快,占用的空間也更少。
在本書中,我們使用的語(yǔ)言是Python,但不僅限于Python。雖然本書可以幫助讀者學(xué)習(xí)Python,但更重要的是,細(xì)心的讀者可以從中學(xué)會(huì)如何通過(guò)編寫程序解決問(wèn)題。這種技能可以轉(zhuǎn)化到任何一種編程語(yǔ)言中。
Python是一門通用性編程語(yǔ)言,幾乎可以快速創(chuàng)建任何類型的程序,而不需要直接訪問(wèn)計(jì)算機(jī)硬件。然而,如果想創(chuàng)建高可靠性的程序,Python并不是最好的選擇(因?yàn)樗撵o態(tài)語(yǔ)義檢查比較弱)。同樣,它也不適于需要多人或長(zhǎng)時(shí)間編寫與維護(hù)的程序(原因還是糟糕的靜態(tài)語(yǔ)義檢查)。
但是,相對(duì)于多數(shù)其他語(yǔ)言,Python確實(shí)有一些過(guò)人之處。它相當(dāng)簡(jiǎn)單,易于學(xué)習(xí)。因?yàn)镻ython是解釋型語(yǔ)言,所以能夠提供實(shí)時(shí)反饋,這對(duì)編程新手特別有用。Python還可以調(diào)用大量免費(fèi)的程序庫(kù),極大地?cái)U(kuò)展了自己的功能。本書也會(huì)用到一些庫(kù)。
下面開(kāi)始學(xué)習(xí)Python中的一些基本元素。這些概念幾乎對(duì)所有語(yǔ)言都是通用的,只是在實(shí)現(xiàn)細(xì)節(jié)上有所差別。
需要提醒各位,本書并不會(huì)全面介紹Python。我們只是將Python作為一個(gè)工具,目的是闡明并思考和解決計(jì)算問(wèn)題相關(guān)的概念。當(dāng)這個(gè)隱含目標(biāo)有需要的時(shí)候,我們會(huì)零零散散地介紹一些語(yǔ)言知識(shí),至于與這個(gè)目標(biāo)無(wú)關(guān)的Python特性則根本不會(huì)提及。我們認(rèn)為這樣做沒(méi)有什么問(wèn)題,因?yàn)楝F(xiàn)在有無(wú)數(shù)優(yōu)秀的在線資源,幾乎涵蓋了這門語(yǔ)言的各個(gè)方面。講授本書基于的課程時(shí),我們建議學(xué)生使用這些免費(fèi)的在線資源作為Python的參考資料。
Python是一門鮮活的語(yǔ)言。自從吉多·范·羅蘇姆1990年發(fā)明Python以來(lái),它已經(jīng)發(fā)生了很多變化。最初的10年中,Python默默無(wú)聞,備受冷落。直到2000年P(guān)ython推出2.0版本,情況才發(fā)生轉(zhuǎn)變。除了語(yǔ)言本身實(shí)現(xiàn)了很多重要的改進(jìn),其演化路徑也發(fā)生了標(biāo)志性的轉(zhuǎn)變。很多人開(kāi)始開(kāi)發(fā)可以與Python無(wú)縫對(duì)接的程序庫(kù),并提供持續(xù)性的支持。Python生態(tài)系統(tǒng)下的開(kāi)發(fā)成為一種基于社區(qū)的活動(dòng)。Python 3.0在2008年末發(fā)布。這個(gè)版本的Python修正了Python 2的多個(gè)發(fā)布版本(通常稱為Python 2.x)在設(shè)計(jì)上的不一致。但是,它不是向后兼容的,這意味著大多數(shù)使用Python以前版本編寫的程序不能在Python 3中正常運(yùn)行。
過(guò)去的幾年中,多數(shù)重要領(lǐng)域的Python程序庫(kù)都轉(zhuǎn)向了Python 3,并使用Python 3.5進(jìn)行了充分的測(cè)試,這就是本書所使用的Python版本。
- 從零構(gòu)建知識(shí)圖譜:技術(shù)、方法與案例
- 數(shù)據(jù)庫(kù)原理及應(yīng)用(Access版)第3版
- Mastering Entity Framework
- 算法基礎(chǔ):打開(kāi)程序設(shè)計(jì)之門
- 移動(dòng)界面(Web/App)Photoshop UI設(shè)計(jì)十全大補(bǔ)
- Teaching with Google Classroom
- Unity 2018 Shaders and Effects Cookbook
- GitHub入門與實(shí)踐
- Oracle數(shù)據(jù)庫(kù)編程經(jīng)典300例
- Unity Character Animation with Mecanim
- Vue.js光速入門及企業(yè)項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)
- Data Science Algorithms in a Week
- 百萬(wàn)在線:大型游戲服務(wù)端開(kāi)發(fā)
- Tableau Dashboard Cookbook
- Mastering Machine Learning with R