1.什么是Python?
Python是一門高級語言,你可能聽說過其他高級語言C,C++,Perl和Java。不同與機(jī)器語言或者匯編語言,高級語言具有很大的優(yōu)勢。首先,高級語言寫就的程序需要的時間更少,代碼更短,易讀性更高。再者,高級語言可移植性高,可以在不同機(jī)器上不經(jīng)修改或少量修改就可運(yùn)行。
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é)運(yùn)算,例如加法和乘法。
條件處理:匹配特定的條件,執(zhí)行相應(yīng)的代碼。
重復(fù):重復(fù)執(zhí)行一些操作,通常是使用一些變量。
4.什么是debugging?
程序是容易犯錯誤的。出于偶然的原因,程序錯誤被命名為bugs,追蹤它們的過程就叫做debugging。程序錯誤分為3種類型:語法錯誤、運(yùn)行時錯誤、語義錯誤。
4.1語法錯誤
Python只能執(zhí)行語法正確的程序,否則,解釋器會顯示一條錯誤的信息。語法指的是程序的結(jié)構(gòu)以及約束程序結(jié)構(gòu)的規(guī)則。例如,圓括號必須成對出現(xiàn),所以(1+2) 是合法的,但是8)是語法錯誤的。
4.2運(yùn)行時錯誤
第二類錯誤叫做運(yùn)行時錯誤,之所以稱為運(yùn)行時錯誤,是因為只有你運(yùn)行了程序,錯誤才可能出現(xiàn)。這些錯誤也被稱為例外,因為它們表示一些不同的(壞的)事情發(fā)生了。
4.3語義錯誤
第三類錯誤是語義錯誤。如果一個語義錯誤出現(xiàn)在你的程序中,程序在某種程度上可以成功運(yù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)系的形式語言?;瘜W(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è)計成幾乎或者完全明確的,這意味著任何語句只能有一種含義。
冗余:為了補(bǔ)償歧義和減少誤解,自然語言使用了大量冗余。結(jié)果,它們常常很啰嗦。形式語言更少冗余,更加簡潔。
表面意義:自然語言充滿了成語和隱喻。如果我說“一枚便士掉落了”,可能根本沒有便士或者什么東西掉落(這個成語意味著一個人在一陣疑惑之后,意識到一些事情)。形式語言只有表面的含義。
這里有一些建議關(guān)于閱讀代碼。首先,記住形式語言比自然語言更加難懂,所以閱讀它們花費(fèi)的時間更長。再者,結(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ù)。