字面常量
一個字面常量(Literal Constants) 的例子是諸如5缴守、1.23這樣的數(shù)字胶果,或者是如這是一串文本或This is a string這樣的文本。
用這樣的稱呼是因為它們是 字面上的——你用的就是它字面意義上的值或是內(nèi)容胖翰。
數(shù)字2總是表示它本身而非其他含義——它是一個 常量逼裆,因為它的值不能被改變。因此辜梳,所有的這些都被稱作字面常量粱甫。
數(shù)字
數(shù)字主要分為兩種類型——整數(shù)(Integers) 與浮點數(shù)(Floats) 。
有關(guān)整數(shù)的例子即2作瞄,它只是一個整數(shù)茶宵。
有關(guān)浮點數(shù)(Floating Point Numbers,在英文中也會簡寫為floats) 的例子是3.23或52.3E-4宗挥。其中乌庶,E表示10的冪。在這里契耿,52.3E-4表示52.3 * 10^-4瞒大。
沒有單獨的long類型。int類型可以指任何大小的整數(shù)搪桂。
字符串
一串字符串(String) 是 字符(Characters) 的 序列(Sequence) 透敌。
基本上盯滚,字符串就是一串詞匯。
單引號
你可以使用單引號來指定字符串酗电,例如'將我這樣框進(jìn)來'或'Quote me on this'魄藕。
所有引號內(nèi)的空間,諸如空格與制表符撵术,都將按原樣保留背率。
雙引號
被雙引號包括的字符串和被單引號括起的字符串其工作機制完全相同。
例如"你的名字是嫩与?"或"What's your name?"寝姿。
三引號
你可以通過使用三個引號 """ 或 ''' 來指定多行字符串。
你可以在三引號之間自由地使用單引號與雙引號划滋。
'''這是一段多行字符串饵筑。這是它的第一行。
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''
字符串是不可變的
這意味著一旦你創(chuàng)造了一串字符串古毛,你就不能再改變它翻翩。盡管這看起來像是一件壞事,但實際上并非如此嫂冻。我們將會在稍后展現(xiàn)的多個程序中看到為何這一點不是一個限制。
針對C/C++程序員的提示:Python中沒有單獨的char數(shù)據(jù)類型桨仿。它并非切實必要,并且我相信你不會想念它的服傍。
針對Perl/PHP程序員的提示:記住單引號括起的字符串和雙引號括起的字符串是一樣的——它們不存在任何區(qū)別。
格式化方法
有時候我們會想要從其他信息中構(gòu)建字符串骂铁。這正是format()方法大有用武之地的地方吹零。
一個字符串可以使用某些特定的格式(Specification) 拉庵,隨后,format()方法將被調(diào)用钞支,使用這一方法中與之相應(yīng)的參數(shù)替換這些格式茫蛹。
Python中format()方法所做的事情便是將每個參數(shù)值替換至格式所在的位置。這之中可以有更詳細(xì)的格式烁挟,例如:
轉(zhuǎn)義序列
想象一下婴洼,如果你希望生成一串包含單引號(') 的字符串撼嗓,你應(yīng)該如何指定這串字符串欢唾?
例如警没,你想要的字符串是"What's your name?"匈辱。
你不能指定'What's your name?'杀迹,因為這會使Python對于何處是字符串的開始押搪、何處又是結(jié)束而感到困惑树酪。所以大州,你必須指定這個單引號不代表這串字符串的結(jié)尾。
這可以通過 轉(zhuǎn)義序列(Escape Sequence) 來實現(xiàn)厦画。
你通過\來指定單引號:要注意它可是反斜杠。
現(xiàn)在根暑,你可以將字符串指定為'What\'s yourname?'。
另一種指定這一特別的字符串的方式是這樣的:"What's your name?"排嫌。
類似地, 你必須在使用雙引號括起的字符串中對字符串內(nèi)的雙引號使用轉(zhuǎn)義序列淳地。
同樣,你必須使用轉(zhuǎn)義序列 \\ 來指定反斜杠本身颇象。
如果你想指定一串雙行字符串該怎么辦?
一種方式即使用如前所述的三引號字符串遣钳。
或者你可以使用一個表示新一行的轉(zhuǎn)義序列 \n 來表示新一行的開始。
print 'This is the first line.\nThis is the second line.'
上述程序輸出結(jié)果為
This is the first line.
This is the second line.
另一個你應(yīng)該知道的大有用處的轉(zhuǎn)義序列是制表符 \t阅爽。
在字符串中,一個放置在末尾的反斜杠表示字符串將在下一行繼續(xù)(代碼中)付翁,但不會換行(輸出結(jié)果中)。
原始字符串
如果你需要指定一些未經(jīng)過特殊處理的字符串百侧,比如轉(zhuǎn)義序列,那么你需要在字符串前增加r或R來指定一個 原始(Raw) 字符串 佣渴。
print r"This is the first sentence.\nThis is the second sentence."
上述程序輸出結(jié)果為
This is the first sentence.\nThis is the second sentence.
針對正則表達(dá)式用戶的提示:在處理正則表達(dá)式時應(yīng)全程使用原始字符串。否則辛润,將會有大量Backwhacking需要處理。舉例說明的話砂竖,反向引用可以通過 '\\1' 或 r'\1' 來實現(xiàn)。
變量
如果只使用字面常量很快就會讓人感到無聊——我們需要一些能夠存儲任何信息并且也能操縱它們的方式乎澄。這便是變量(Veriables) 登場的時刻。顧名思義置济,變量的值是可以變化的,也就是說浙于,你可以用變量來存儲任何東西。變量只是你的計算機內(nèi)存中用以存儲信息的一部分路媚。與文字常量不同,你需要通過一些方式來訪問這些變量整慎,因此,你需要為它們命名裤园。
標(biāo)識符命名
變量是標(biāo)識符的一個例子撤师。標(biāo)識符(Identifiers)是為某些東西提供的給定名稱拧揽。在你命名標(biāo)識符時,你需要遵守以下規(guī)則:
第一個字符必須是字母表中的字母(大寫ASCII字符或小寫ASCII字符或Unicode字符) 或下劃線(_) 淤袜。
標(biāo)識符的其它部分可以由字符(大寫ASCII字符或小寫ASCII字符或Unicode字符)、下劃線(_)铡羡、數(shù)字(0~9)組成。
標(biāo)識符名稱區(qū)分大小寫烦周。例如怎顾,myname和myName并不等同漱贱。要注意到前者是小寫字母n而后者是大寫字母N。
有效的標(biāo)識符名稱可以是i或name_2_3幅狮,無效 的標(biāo)識符名稱可能是2things,this is spaced out彪笼,my-name和>a1b2_c3。
數(shù)據(jù)類型
變量可以將各種形式的值保存為不同的數(shù)據(jù)類型(Data Type)配猫⌒铀溃基本的類型是我們已經(jīng)討論過的數(shù)字與字符串泵肄。在后面的章節(jié)中淑翼,我們會了解如何通過類(Classes)類創(chuàng)建我們自己的類型。
對象
需要記住的是玄括,Python將程序中的任何內(nèi)容統(tǒng)稱為對象(Object)。這是一般意義上的說法遭京。我們以“某某對象(object)”相稱,而非“某某東西(something)”哪雕。
針對面向?qū)ο缶幊陶Z言用戶的提示:Python是強(Strongly) 面向?qū)ο蟮模驗樗械囊磺卸际菍ο螅?包括數(shù)字斯嚎、字符串與函數(shù)。