在Windows下可以通過點(diǎn)擊開始按鈕,選擇“程序”,點(diǎn)擊“Python”,然后選擇“Python(command line)”菜單選項(xiàng)來開始一個(gè)交互會(huì)話。
在輸入系統(tǒng)命令行的地方,也就是你所在的平臺(tái)提供給作為系統(tǒng)終端的地方
Windows下的系統(tǒng)提示符,在Unix、Linux或mac OS x的xterm或者終端窗口。
一個(gè)腳本(實(shí)際 上是模塊)文件中的代碼可以通過系統(tǒng)命令行、文件鼠標(biāo)點(diǎn)擊、導(dǎo)入和重載,exec內(nèi)置函數(shù)以及像IDLE的Run→Run Module菜單選項(xiàng)這樣的IDEGUI選取來運(yùn)行。
打印后退出的腳本會(huì)導(dǎo)致輸出文件馬上消失,在你能夠看到輸出之前,你的腳本產(chǎn)生的同樣顯示在輸出窗口的錯(cuò)誤信息,會(huì)在查看其內(nèi)容前關(guān)閉(這也是對(duì)大多數(shù)開發(fā)任務(wù),系統(tǒng)命令和IDLE這類IDE之所以更好的原因。)
在默認(rèn)的情況下,Python每個(gè)進(jìn)程只會(huì)導(dǎo)入一個(gè)模塊一次,所以如果你改變了它的源代碼,并且希望在不停止或者重新啟動(dòng)Python的情況下運(yùn)行其最新的版本,你將必須重載它。在你重載一個(gè)模塊之前至少已經(jīng)導(dǎo)入了一次。在系統(tǒng)命令行匯總運(yùn)行代碼,或者通過圖標(biāo)點(diǎn)擊,或者像使用IDLE這樣IDE,這不再是一個(gè)問題,因?yàn)檫@些啟動(dòng)機(jī)制網(wǎng)管網(wǎng)每次都是運(yùn)行源代碼的最新版本。
在你希望運(yùn)行的文件所在的文件編輯窗口,懸著窗口的Run→Run Module菜單選項(xiàng)。這可以將這個(gè)窗口的源代碼作為頂層腳本文件運(yùn)行,并在交互Pythonshell窗口顯示其輸出。
命名空間就是變量(也就是變量名)的封裝。它在Python中以一個(gè)帶有屬性的對(duì)象形式出現(xiàn)。每個(gè)模塊文件自動(dòng)成為一個(gè)命名空間;也就是說,一個(gè)對(duì)變量的封裝,這些變量對(duì)應(yīng)了頂層文件的復(fù)制。命名空間可以避免在Python程序中的命名沖突——因?yàn)槊總€(gè)模塊文件都是獨(dú)立玩唄的命名空間,文件鼻血明確的導(dǎo)入其他的文件才能使用這些文件的變量名。
數(shù)據(jù)、字符串、列表、字典、元組、文件和集合一般被認(rèn)為是核心對(duì)象(數(shù)據(jù))類型。類型、None和布爾型有時(shí)也被定義在這樣的分類中。還有數(shù)字類型(整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)、分?jǐn)?shù)和十進(jìn)制數(shù))和多種字符串類型。
它們被認(rèn)作是“核心”類型是因?yàn)樗麄兪荘ython語言資深的一部分,并且總是有效的,為了建立其他的對(duì)象,通常必須調(diào)用被導(dǎo)入模塊的函數(shù)。大多數(shù)核心類型都有特定的語法去生成其對(duì)象。
一個(gè)具有不可變性的對(duì)象是一個(gè)在其創(chuàng)建以后不能夠被改變的對(duì)象。Python中的數(shù)據(jù)、字符串和元組都是屬于這個(gè)分類。盡管無法的改變一個(gè)不可變的對(duì)象,但是你總是可以通過運(yùn)行一個(gè)表達(dá)式創(chuàng)建一個(gè)新的對(duì)象。
一個(gè)序列是一個(gè)對(duì)位置進(jìn)行拍訊的對(duì)象的集合。字符串、列表和元組是Python中所有序列。他們共同擁有一般的序列操作,例如:索引、合并以及切片,但各自有自己的類型特定的方法調(diào)用。
術(shù)語映射,表示將鍵與相互關(guān)聯(lián)映射的對(duì)象。Python的字典是其核心數(shù)據(jù)類型幾種唯一的映射類型。應(yīng)該設(shè)沒有從左至右的位置順序,他們支持通過鍵獲取數(shù)據(jù),并包含了類型特定的放大調(diào)用。
多態(tài)以為著一個(gè)操作符(如+)的意義區(qū)卻于被操作的對(duì)象。這將變成使用好Python的關(guān)鍵思想之一,不要把代碼限制在特定的類型上,使代碼自動(dòng)使用于多種類型。
1 A = "spam"2 3 B = A4 5 B = "shrubbery"
不會(huì),A仍會(huì)作為“spam”進(jìn)行打印。當(dāng)B賦值為字符串"shrubbery"時(shí),所發(fā)生的變量B被重新設(shè)置為所指向了新的字符串對(duì)象。A和B最初共享了同一個(gè)字符串對(duì)象“spam”,但是在Python中這個(gè)連個(gè)變量名從未鏈接在一起。因?yàn)椋O(shè)置B為另一個(gè)不同的對(duì)象對(duì)A沒有影響。如果這里最后的語句變?yōu)锽 = B+"shrubbery",也會(huì)發(fā)生同樣的事情。另外,合并操作創(chuàng)建了一個(gè)新的對(duì)象作為其結(jié)果,并將這個(gè)值只賦值給了B。我們永遠(yuǎn)都不會(huì)在遠(yuǎn)處覆蓋一個(gè)字符串(數(shù)字或者元組),因?yàn)樽址遣豢勺兊摹?/p>
A = ["spam"]B = AB[0] = "shrubbery"
會(huì)改變A的值,A現(xiàn)在打印為["shrubbery"],從技術(shù)上講,我們既沒有改變A也沒有改變B,我們改變的是這兩個(gè)變量共同引用的對(duì)象一部分,通過變量B在遠(yuǎn)處覆蓋了這個(gè)對(duì)象的一部分內(nèi)容。因?yàn)锳像B一樣引用了同一個(gè)對(duì)象,這個(gè)改變也會(huì)對(duì)A產(chǎn)生影響。
A = ["spam"]B = A[:]B[0] = "shrbbery"
不會(huì),A仍然會(huì)打印為['spam']。由于切片會(huì)在被復(fù)制給B錢創(chuàng)建一個(gè)拷貝,這次對(duì)B在原處賦值就不會(huì)影響了。在第二個(gè)賦值語句后,就有了兩個(gè)擁有相同值的不同列表對(duì)象了(在Python中,我們說它們是==的,卻不是is的)。第三條復(fù)制語句會(huì)邊改指向B的列表對(duì)象,而不會(huì)改變指向A的列表對(duì)象。
聯(lián)系客服