1.什么是Python?
Python是一門高級語言倦蚪,你可能聽說過其他高級語言C,C++,Perl和Java边苹。不同與機器語言或者匯編語言个束,高級語言具有很大的優(yōu)勢。首先,高級語言寫就的程序需要的時間更少售睹,代碼更短昌妹,易讀性更高。再者烂叔,高級語言可移植性高固歪,可以在不同機器上不經(jīng)修改或少量修改就可運行胯努。
2.Python解釋器類型
Python程序由解釋器執(zhí)行叶沛。有兩種方式使用解釋器:交互模式和腳本模式灰署。交互模式中局嘁,你可以輸入Python程序悦昵,解釋器顯示結(jié)果:
>>> 1+1
2
你也可以將代碼存儲為文件,然后在解釋器中執(zhí)行腳本(文件中的內(nèi)容)独郎。默認(rèn)情況下氓癌,Python腳本的后綴名是.py贫橙。如果你有一個叫xxx.py的腳本,你可以在UNIX中命令窗口中疲迂,輸入python xxx.py來執(zhí)行腳本尤蒿。在其他的系統(tǒng)環(huán)境中幅垮,執(zhí)行腳本的細(xì)節(jié)有所不同,你可以訪問這里示弓。
3.什么是程序奏属?
程序是制定如何執(zhí)行一系列計算的操作潮峦。這里的計算不單單指數(shù)學(xué)計算勇婴,也包括符號計算,例如搜索和替換文檔中的文本咆耿,編譯程序等萨螺。
程序語言一般由以下5個步驟組成:
輸入:從鍵盤愧驱、文檔或者其他設(shè)備中獲取數(shù)據(jù)。
輸出:在屏幕上顯示數(shù)據(jù)或者向文件或其他設(shè)備發(fā)送數(shù)據(jù)吻商。
數(shù)學(xué):執(zhí)行基礎(chǔ)的數(shù)學(xué)運算艾帐,例如加法和乘法盆偿。
條件處理:匹配特定的條件事扭,執(zhí)行相應(yīng)的代碼。
重復(fù):重復(fù)執(zhí)行一些操作今野,通常是使用一些變量罐农。
4.什么是debugging?
程序是容易犯錯誤的涵亏。出于偶然的原因,程序錯誤被命名為bugs夹厌,追蹤它們的過程就叫做debugging裆悄。程序錯誤分為3種類型:語法錯誤光稼、運行時錯誤、語義錯誤艾君。
4.1語法錯誤
Python只能執(zhí)行語法正確的程序冰垄,否則,解釋器會顯示一條錯誤的信息逝薪。語法指的是程序的結(jié)構(gòu)以及約束程序結(jié)構(gòu)的規(guī)則蝴罪。例如要门,圓括號必須成對出現(xiàn),所以(1+2) 是合法的封豪,但是8)是語法錯誤的狂巢。
4.2運行時錯誤
第二類錯誤叫做運行時錯誤唧领,之所以稱為運行時錯誤,是因為只有你運行了程序胯杭,錯誤才可能出現(xiàn)受啥。這些錯誤也被稱為例外滚局,因為它們表示一些不同的(壞的)事情發(fā)生了。
4.3語義錯誤
第三類錯誤是語義錯誤太闺。如果一個語義錯誤出現(xiàn)在你的程序中嘁圈,程序在某種程度上可以成功運行蟀淮,不會生成任何錯誤信息怠惶,但是程序不做你本來想做的事情轧粟。
問題所在是你寫的程序不是你想要的程序。程序的含義是錯誤的览妖。辨別語義錯誤是非常困難的揽祥,因為它需要你回頭看看程序輸出了什么,才能嘗試?yán)斫馑谧鲂┦裁础?/p>
4.4實驗debugging
你需要掌握的最重要的技能之一就是debugging府树。盡管它是令人沮喪的料按,debugging是程序中最考驗智力载矿,最富有挑戰(zhàn)和最有趣的環(huán)節(jié)之一。
在某種程度上弯洗,debugging類似偵探工作逢勾。面對線索,你必須推斷導(dǎo)致結(jié)果的過程和事件逃贝。debugging也類似實驗物理沐扳。一旦發(fā)現(xiàn)錯誤的情況,你就可以修改程序并再次嘗試沪摄。如果你的假設(shè)正確卓起,你可以預(yù)測修改的結(jié)果戏阅,以便離你的程序完成更近一步啤它。如果你的假設(shè)錯誤,你必須提出一個新的假設(shè)离赫。正如Sherlock Holms所說的:
“當(dāng)你排除不可能的情況渊胸,無論剩下的情況是多么的不可能台妆,都一定是事實∏欣澹” –A. Conan Doyle, The Sign of Four
對于一些人來說懊缺,programming和debugging是一樣的事情鹃两。programming是一個不斷debugging程序直到達(dá)到目的的過程。一個觀點是员萍,你應(yīng)該寫一段程序拣度,并在此之上做些小的修改,然后debugging程序筋帖,所以你總是在programming冤馏。
5.形式語言和自然語言
自然語言是人們交流使用的語言,例如漢語墩划、英語嗡综、西班牙語和法語。它們不是由人們設(shè)計的极景,而是自發(fā)形成的盼樟。
形式語言是人們?yōu)樘囟ǖ膽?yīng)用設(shè)計的語言。例如晨缴,數(shù)學(xué)家使用的標(biāo)記是一種專門表示數(shù)字和符號關(guān)系的形式語言击碗⊙佣迹化學(xué)家使用一種符號語言來表示分子的化學(xué)結(jié)構(gòu)。最重要的是:程序語言是專門設(shè)計表示計算的形式語言求摇。
形式語言具有嚴(yán)格的語法規(guī)則与境。例如猖吴,3 + 3 = 6 是語法正確的數(shù)學(xué)語句,但是3 + = 3$6不是共屈。
語法規(guī)則有兩個特點:token和structure拗引。Tokens是語言基本的要素矾削,諸如單詞、數(shù)字和化學(xué)要素哼凯。3 + = 3$6一個錯誤是$在數(shù)學(xué)中不是合法的token。語法規(guī)則的第二類是語句的結(jié)構(gòu)猎贴,即tokens組合的方式。語句 3 + = 3是非法的虱疏,即使+苏携、=是合法的tokens,但是你不能在一個tokens后面使用另一個tokens装蓬。
盡管形式語言和自然語言在很多方面是相同的-tokens牍帚、structure乳蛾、語法和語義,但是它們也有一些不同之處:
歧義:自然語言充滿歧義蹂随,人們通過使用上下文線索和其他信息來辨別岳锁。形式語言設(shè)計成幾乎或者完全明確的蹦魔,這意味著任何語句只能有一種含義。
冗余:為了補償歧義和減少誤解柱搜,自然語言使用了大量冗余聪蘸。結(jié)果,它們常常很啰嗦控乾。形式語言更少冗余蜕衡,更加簡潔慨仿。
表面意義:自然語言充滿了成語和隱喻纳胧。如果我說“一枚便士掉落了”跑慕,可能根本沒有便士或者什么東西掉落(這個成語意味著一個人在一陣疑惑之后核行,意識到一些事情)芝雪。形式語言只有表面的含義惩系。
這里有一些建議關(guān)于閱讀代碼佳励。首先,記住形式語言比自然語言更加難懂蛆挫,所以閱讀它們花費的時間更長赃承。再者,結(jié)構(gòu)是非常重要的悴侵,通常從上往下瞧剖,從左往右閱讀不是一個好主意。與之相反可免,學(xué)會在你的大腦中分析程序抓于,識別標(biāo)記和解釋結(jié)構(gòu)。最后浇借,細(xì)節(jié)很重要捉撮。細(xì)小的拼寫錯誤和標(biāo)點錯誤,都會在形式語言都會影響重大妇垢。
6.第一個程序
在Python中巾遭,打印“Hello World”。
print 'Hello, World!'
這是一個打印語句的例子炫乓,它不會在紙上打印任何東西。它將在屏幕上顯示一個值箩做,這里這個值是:
Hello, World!
程序中的雙引號標(biāo)識需要顯示文本的開始和結(jié)尾咖熟,它們不會出現(xiàn)在結(jié)果中。在Python 3中,打印語法有點不一樣:
print ('Hello, World!')
圓括號表示方法print是函數(shù)。