想了解python的安裝及運行的可以看慢步之前寫的文章。
今天繼續python編程基礎內容,字符串類型數據。
python裡面主要的數據類型是數值類型和字符串類型。計算機可以進行運算的是數值,字符串不能進行數學運算,像你在閱讀的文字,可以理解為字符串的一種。簡單來說,字符串就是「字符」。
字符串在python中的形式
它們可以用單引號(『…』)或雙引號(「…」)括起來。
用IDLE運行python
在IDLE裡輸入a及'a'看看
輸入a提示錯誤,最後一項是具體的錯誤信息:
命名錯誤:名字a未被定義。
a一般被當作變量名,直接輸入就會出現這樣的錯誤。
但'a'輸入後沒有提示出錯,'a'就是一個字符串。
輸出函數print()與轉義字符
字符串,可以理解為文本文字,文字的作用就是輸出的,或者輸出到文本文件,或者輸出在顯示器。輸出常用的是輸出函數print()。將要輸出的字符串放到函數括號內就可以進行輸出。
順便看看一個特殊的符號\ 反斜槓
在使用print()時提示了兩次語法錯誤。
看看第一字符串 'I'm Hero!' 原意是顯示字符串I'm Hero! 但python理解為'I' 和後面部分代碼m Hero!' 因為這裡由單引號開始,python會將第2個單引號理解為字符串的結束。
在單引號字符串想要顯示單引號,慢步用轉義字符\ 反斜槓 才成功輸出。轉義字符\ 的作用就是在特殊字符前使用,可以實現特殊的顯示功能。
第二次錯誤提示的是「異常的縮進」,因為慢步在複製代碼時print前面多複製了一個空格。
再接下來,筆者用雙引號作為字符串的外部標識,裡面的單引號正常顯示了。同理用單引號作為字符串標識,裡面的雙引號也可以顯示。
字符串的換行顯示
在上面的例子中,一個print()只輸出一行內容。下面看看幾個多行內容輸出的例子
print()函數括號內是常規的字符串時,會將字符串標識去掉,內容顯示為一行。
第三個輸出語句中多了轉義字符\n,這個轉義字符的作用是換行。
最後面兩個輸出語句括號內容為由三引號"""……"""標識,三引號標識的字符串可以直接換行輸出。
通用的代碼換行
假如你要寫一條300個字符的python代碼,你要閱讀這個代碼就會非常吃力。為解決這個問題,python提供了代碼換行符\,(轉義字符是反斜槓+一個字符產生顯示效果,這裡單獨使用反斜槓)
藍色為交互環境下python的輸出部分。第1次無異常。第2次慢步加換行符\,提示錯誤。因為換行符\必須是最後一個字符,後面不能再存在任何字符。
圖片最後兩次輸出,print(CC),最後一次異常:無效的語法。因為把關鍵詞print截成兩半,python同樣是不能識別的。
可以這樣理解換行符\
在任何一句代碼中,你嫌它太長,你就可以用\符號作為本行代碼的終止,換行繼續編寫,效果和無換行時完全一樣。只是不能把關鍵語言詞彙破壞。
字符串的乘與加,原字符輸出
字符串也有乘和加,乘的效果是複製字符串的次數,加是字符串的連接。
第1條,提示錯誤,因為慢步打中文,最後用中文引號收尾。python只認英文字符作為語法標識符。
乘是複製字符串,加是連接兩個字符串。
慢步嘗試寫一個c,字符串內容為"電腦文件路徑:C:\user",多次提示異常。考慮\u有特殊意義,在這裡破壞了賦值=的語法。
用print輸出"電腦文件路徑:C:\user"提示異常,和上面一樣,考慮\u有特殊意義。但在print函數中,在引號前加一個r,就可以原字符輸出引號內字符串內容了。
特殊的字符串連接
有一種特殊的字符串連接方式,繼續看例子。
輸入兩個字符串,會自動連接為一個。但字符串變量和字符串不能自動連接,必須使用+等連接。在括號內,上下行的字符串也會自動連接。
字符串的索引及切片
字符串有個強大的功能,就是能夠通過索引進行切片使用。
首先看看索引。
有個字符串變量f,為「我在學慢步python編程再來一行看看」,中括號內的就是字符串的索引號,字符串f的第0個元素為「我」,第1個元素為「在」……
中括號內為索引,索引從左往右從0開始遞增。
在看看後面,可以從右往左使用索引,這時的索引號用負數表示。從-1開始,-2、-3遞減。f[0]和發f[-0]都是我,因為-0還是0。
如上圖字符串「Python」,正序索引為0-5,6則超出字符串的索引長度。反序索引為-1到-6。
在索引的基礎上,我們可以繼續進行字符串的切片。
如圖,字符串切片由中括號內兩個索引號決定切片範圍。切[0:3],簡單理解是從0號元素到3號元素,有沒有發現?3號元素應該是「來」,但不在切片內。字符串切片就是這樣,包括前面索引對應的元素,不包括後面的索引對應的元素。反序索引也一樣。
切片的基本格式是 字符串[前索引號:後索引號] 兩個索引號之間有英文冒號存在。
省略前索引號,默認包括後索引前所有字符串;省略後索引號,默認包括前索引前所有索引;省略前後索引,則切片包括所有字符串元素。
最後介紹一個長度函數len(),可以獲得字符串內元素的數量。後面的列表長度也是可以通過len()獲得的。
繼續看索引及切片。
一個10個元素的字符串(10個字符),索引10指向第11個字符,不存在,提示異常:out of range
索引及切片得到的結果可以作為一個字符串變量進行連接和複製,但不能被賦值修改。因為我們切片或者索引引用出來的是一個映射或者說是一個副本,「原件」是不動的。
字符串及應用基本就這樣,祝願大家早日登堂入室、成為編程高手、大咖。
想學習更多內容可以關注慢步。