1. 程式人生 > 程式設計 >淺談Python中的字串

淺談Python中的字串

  可能大多數人在學習C語言的時候,最先接觸的資料型別就是字串,因為大多教程都是以"Hello world"這個程式作為入門程式,這個程式中要列印的"Hello world"就是字串。如果你做過自然語言處理方面的研究,並且用Python去做過相關實驗,你肯定會體會到Python在字串處理方面相對於其他語言的明顯優勢之處。今天我們來了解一下Python中的字串,看看它的用法。

一.Python中如何宣告字串

  在Python中宣告一個字串通常有三種方法:在它的兩邊加上那個單引號、雙引號或者三引號。

  如:

淺談Python中的字串

  從上面可以看出三種宣告方法的效果是完全一樣的,在Python中用這三種宣告方法來宣告字串意義完全等同的,即'hello world'和"hello world"以及'''hello world'''是沒有任何區別的。但是會有人問:既然是完全等同的,為什麼要弄出三種宣告方式呢?下面看一下這幾個例子:

淺談Python中的字串

  在Python中提供了這幾種方法,使得使用起來更加方便靈活(當然也可以使用轉義字元去解決上面報錯的地方)。

  在這裡要注意的是,

  1)在Python中沒有類似C語言中char這種型別的字串,也就是說即使是單個字元也是字串。

  2)Python中的字串一旦宣告,是不能進行更改的,即不能通過對某一位置重新賦值改變內容。

淺談Python中的字串

二.Python中的字串型別

  Python中的字串有兩種資料型別:str型別和unicode型別。str型別採用的ASCII編碼,也就是說它無法表示中文。unicode型別採用unicode編碼,能夠表示任意的字元,包括中文、日文、韓文等。

  在python中字串預設採用的ASCII編碼,如果要顯示宣告為unicode型別的話,需要在字串前面加上'u'或者'U'。

  下面看一段程式碼

print '我'
print u'我'
print 'python'
print u'python'

這段程式碼的執行結果為:

淺談Python中的字串

  從執行結果可以看出,如果是中文的話,不採用unicode型別,輸出的會是亂碼。

三.轉義字元和原始字串

  同C語言中一樣,Python中也有轉義字元,用反斜槓'\'來表示對後面字元進行轉義。

  比如上面例子中的問題就可以用轉義來解決:

淺談Python中的字串

  如果你編寫過Java程式,並且使用過Java中的正則表示式,你可能會對Java正則表示式深惡痛絕(我自己就是),因為稍不注意就會出錯,裡面有太多的轉義,而且看起來也很繁瑣雜亂。在Python中,你不必再為這個問題煩惱了,因為Python提供了原始字串,顧名思義,就是保留原始字元的意思,不對反斜槓及反斜槓後面的字元進行轉義,宣告原始字串的方法是在字串前面加上'r'或者'R'。

淺談Python中的字串

  在這裡要注意:在Python中行尾結束符始終為'\n',不論Python程式在哪個作業系統下執行。在Linux環境下編寫C語言時,換行符為'\n',而在windows下為'\r\n'。編寫Python程式不用擔心這種因執行環境不同引起的不相容問題。

四.使用者輸入以及格式化輸出字串

  在Python中最常用的從鍵盤獲取輸入的函式是raw_input()和input()。但是這兩個函式有很大的區別:

  raw_input()以字串的形式返回使用者輸入的一切內容;

  而input()卻不是這樣,它會根據輸入內容的形式確定返回的形式(可能有點拗口)。下面看個例子就明白了:

淺談Python中的字串

  從這個例子顯而易見可以看出兩者的區別,同樣輸入123,raw_input()返回的是字串123,而input()返回的是整數123。個人建議一般情況下使用raw_input()獲取輸入,這樣能避免程式中出現一些不必要的麻煩。

  同C語言一樣,Python中也提供了格式化輸出。

  Python中的格式化輸出和C語言類似,基本格式如下:

  print '....%formmat..' %(var...)

  當var只有一個時,括號可以省略。

淺談Python中的字串

  關於Python的字串今天就討論這麼多了,在這裡只是討論了基本的概念和知識點,相關字串函式的使用請查閱API文件。

以上就是淺談Python中的字串的詳細內容,更多關於Python中的字串的資料請關注我們其它相關文章!