Python中的字符串

可能大多數人在學習C語言的時候,最早接觸的數據類型就是字符串,由於大多教程都是以"Hello world"這個程序做爲入門程序,這個程序中要打印的"Hello world"就是字符串。若是你作過天然語言處理方面的研究,而且用Python去作過相關實驗,你確定會體會到Python在字符串處理方面相對於其餘語言的明顯優點之處。今天咱們來了解一下Python中的字符串,看看它的用法。python

一.Python中如何聲明字符串正則表達式

  在Python中聲明一個字符串一般有三種方法:在它的兩邊加上那個單引號、雙引號或者三引號。windows

  如:ide

  

  從上面能夠看出三種聲明方法的效果是徹底同樣的,在Python中用這三種聲明方法來聲明字符串意義徹底等同的,即'hello world'和"hello world"以及'''hello world'''是沒有任何區別的。可是會有人問:既然是徹底等同的,爲何要弄出三種聲明方式呢?下面看一下這幾個例子:函數

     

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

  在這裏要注意的是,編碼

  1)在Python中沒有相似C語言中char這種類型的字符串,也就是說即便是單個字符也是字符串。操作系統

  2)Python中的字符串一旦聲明,是不能進行更改的,即不能經過對某一位置從新賦值改變內容。code

  

二.Python中的字符串類型orm

  Python中的字符串有兩種數據類型:str類型和unicode類型。str類型採用的ASCII編碼,也就是說它沒法表示中文。unicode類型採用unicode編碼,可以表示任意的字符,包括中文、日文、韓文等。

  在python中字符串默認採用的ASCII編碼,若是要顯示聲明爲unicode類型的話,須要在字符串前面加上'u'或者'U'。

  下面看一段代碼

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

  這段代碼的運行結果爲:

  

  從運行結果能夠看出,若是是中文的話,不採用unicode類型,輸出的會是亂碼。

三.轉義字符和原始字符串

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

  好比上面例子中的問題就能夠用轉義來解決:

  

  若是你編寫過Java程序,而且使用過Java中的正則表達式,你可能會對Java正則表達式深惡痛絕(我本身就是),由於稍不注意就會出錯,裏面有太多的轉義,並且看起來也很繁瑣雜亂。在Python中,你沒必要再爲這個問題煩惱了,由於Python提供了原始字符串,顧名思義,就是保留原始字符的意思,不對反斜槓及反斜槓後面的字符進行轉義,聲明原始字符串的方法是在字符串前面加上'r'或者'R'。

  

  在這裏要注意:在Python中行尾結束符始終爲'\n',不論Python程序在哪一個操做系統下運行。在Linux環境下編寫C語言時,換行符爲'\n',而在windows下爲'\r\n'。編寫Python程序不用擔憂這種因運行環境不一樣引發的不兼容問題。

四.用戶輸入以及格式化輸出字符串

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

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

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

  

  從這個例子顯而易見能夠看出二者的區別,一樣輸入123,raw_input()返回的是字符串123,而input()返回的是整數123。我的建議通常狀況下使用raw_input()獲取輸入,這樣能避免程序中出現一些沒必要要的麻煩。

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

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

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

  當var只有一個時,括號能夠省略。

  

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

相關文章
相關標籤/搜索