網站地圖 | RSS訂閱 老鐵博客 - 上海SEO優化|上海網站建設|蜘蛛池出租|站群代搭建
你的位置:首頁 ? 前端腳本 ? 正文

python字符串,python字符串常用方法

2020-7-10 13:44:36 | 作者:老鐵SEO | 0個評論 | 人瀏覽

  字符串或串(String)是由數字、字母、下劃線組成的一串字符。一般記為s=“a1a2···an”(n>=0)。它是編程語言中表示文本的數據類型。通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字符串相等的充要條件是:長度相等,并且各個對應位置上的字符都相等。


  python字符串相關特性


  1屬于python基本數據類型和結構的一種。2本身是不可變的數據類型。3有很多內置的方法


  字符串連接


  方法1:用字符串的join方法


  a=['a','b','c','d']


  content=''


  content=''.join(a)


  printcontent


  方法2:用字符串的替換占位符替換


  a=['a','b','c','d']


  content=''


  content='%s%s%s%s'%tuple(a)


  printcontent


  想要了解更多,請看python字符串連接


  字符串截取


  我們可以通過索引來提取想要獲取的字符,可以把python的字符串也做為字符串的列表就更好理解


  python的字串列表有2種取值順序


  1是從左到右索引默認0開始的,最大范圍是字符串長度少1


  s='ilovepython'


  s[0]的結果是i


  2是從右到左索引默認-1開始的,最大范圍是字符串開頭


  s='ilovepython'


  s[-1]的結果是n


  上面這個是取得一個字符,如果你的實際要取得一段子串的話,可以用到變量[頭下標:尾下標],就可以截取相應的字符串,其中下標是從0開始算起,可以是正數或負數,下標可以為空表示取到頭或尾。


  比如


  s='ilovepython'


  s[1:5]的結果是love


  當使用以冒號分隔的字符串,python返回一個新的對象,結果包含了以這對偏移標識的連續的內容,左邊的開始是包含了下邊界,比如


  上面的結果包含了s的值l,而取到的最大范圍不包括上邊界,就是s[5]的值p


  想要了解更多,請看python字符串截取


  字符串替換


  字符串替換可以用內置的方法和正則表達式完成。


  1用字符串本身的replace方法:


  a='helloword'


  b=a.replace('word','python')


  printb


  2用正則表達式來完成替換:


  importre


  a='helloword'


  strinfo=re.compile('word')


  b=strinfo.sub('python',a)


  printb


  想要了解更多,請看python字符串替換


  字符串比較


  cmp方法比較兩個對象,并根據結果返回一個整數。cmp(x,y)如果X<Y,返回值是負數如果X>Y返回的值為正數。


  sStr1='strch'


  sStr2='strchr'


  printcmp(sStr1,sStr2)##-1


  字符串相加


  我們通過操作符號+來進行字符串的相加,不過建議還是用其他的方式來進行字符串的拼接,這樣效率高點。


  原因:在循環連接字符串的時候,他每次連接一次,就要重新開辟空間,然后把字符串連接起來,再放入新的空間,再一次循環,又要開辟新的空間,把字符串連接起來放入新的空間,如此反復,內存操作比較頻繁,每次都要計算內存空間,然后開辟內存空間,再釋放內存空間,效率非常低。


  sStr1='strch'


  sStr2='strchr'


  newstr=sStr1+sStr2


  printnewstr


  字符串查找


  python字符串查找有4個方法,1find,2index方法,3rfind方法,4rindex方法。


  1find()方法:


  info='abca'


  printinfo.find('a')##從下標0開始,查找在字符串里第一個出現的子串,返回結果:0


  info='abca'


  printinfo.find('a',1)##從下標1開始,查找在字符串里第一個出現的子串:返回結果3


  info='abca'


  printinfo.find('333')##返回-1,查找不到返回-1


  2index()方法:


  python的index方法是在字符串里查找子串第一次出現的位置,類似字符串的find方法,不過比find方法更好的是,如果查找不到子串,會拋出異常,而不是返回-1


  info='abca'


  printinfo.index('a')


  printinfo.index('33')


  字符串分割


  字符串分割,可以用split,rsplit方法,通過相應的規則來切割成生成列表對象


  info='name:haha,age:20$name:python,age:30$name:fef,age:55'


  content=info.split('$')


  printcontent


  字符串翻轉


  通過步進反轉[::-1]


  a='abcd'


  b=a[::-1]##[::-1]通過步進反轉


  printb


  字符串編碼


  通過字符串的decode和encode方法


  1encode([encoding,[errors]])


  #其中encoding可以有多種值,比如gb2312gbkgb18030bz2zlibbig5bzse64等都支持。errors默認值為"strict",意思是UnicodeError。可能的值還有'ignore','replace','xmlcharrefreplace','backslashreplace'和所有的通過codecs.register_error注冊的值。


  S.decode([encoding,[errors]])下面是字符串編碼應用:


  a='你好'


  b='python'


  printa.decode('utf-8').encode('gbk')##decode方法把字符串轉換為unicode對象,然后通過encode方法轉換為指定的編碼字符串對象


  printb.decode('utf-8')##decode方法把字符串轉換為unicode對象


  字符串追加和拼接


  通過字符串的占位符來進行字符串的拼接


  #1元組拼接


  m='python'


  astr='ilove%s'%m


  printastr


  #2字符串的format方法


  m='python'


  astr="ilove{python}".format(python=m)


  printastr


  #3字典格式化字符串


  m='python'


  astr="ilove%(python)s"%{'python':m}


  printastr


  字符串復制


  通過變量來進行賦值


  fstr='strcpy'


  sstr=fstr


  fstr='strcpy2'


  printsstr


  字符串長度


  通過內置方法len()來計算字符串的長度,注意這個計算的是字符的長度。


  aa='afebb'


  bb='你'


  printlen(aa)


  printlen(bb)


  字符串大小寫


  通過下面的upper(),lower()等方法來轉換大小寫


  S.upper()#S中的字母大寫


  S.lower()#S中的字母小寫


  S.capitalize()#首字母大寫


  S.istitle()#S是否是首字母大寫的


  S.isupper()#S中的字母是否便是大寫


  S.islower()#S中的字母是否全是小寫


  字符串去空格


  通過strip(),lstrip(),rstrip()方法去除字符串的空格


  S.strip()去掉字符串的左右空格


  S.lstrip()去掉字符串的左邊空格


  S.rstrip()去掉字符串的右邊空格


  字符串其他方法


  字符串相關的其他方法:count(),join()方法等。


  S.center(width,[fillchar])#中間對齊


  S.count(substr,[start,[end]])#計算substr在S中出現的次數


  S.expandtabs([tabsize])#把S中的tab字符替換沒空格,每個tab替換為tabsize個空格,默認是8個


  S.isalnum()#是否全是字母和數字,并至少有一個字符


  S.isalpha()#是否全是字母,并至少有一個字符


  S.isspace()#是否全是空白字符,并至少有一個字符


  S.join()#S中的join,把列表生成一個字符串對象


  S.ljust(width,[fillchar])#輸出width個字符,S左對齊,不足部分用fillchar填充,默認的為空格。


  S.rjust(width,[fillchar])#右對齊


  S.splitlines([keepends])#把S按照行分割符分為一個list,keepends是一個bool值,如果為真每行后而會保留行分割符。


  S.swapcase()#大小寫互換


  Python中如何定義字符串


  在Python中字符串是不可改變的對象(immutable),因此無法直接修改字符串的某一位字符。


  一種可行的方式,是將字符串轉換為列表,修改列表的元素后,在重新連接為字符串。


  示例代碼如下:


  s='abcdefghijk'#原字符串l=list(s)#將字符串轉換為列表,列表的每一個元素為一個字符l='z'#修改字符串的第1個字符為znewS=''.join(l)#將列表重新連接為字符串print(newS)#azcdefghijk#修改后的字符串


  如何進行Python字符串操作?


  它合理地結合了高性能與使得編寫程序簡單有趣的特色,下面講述python字符串操作流程。要使用string的方法要先import,但后來由于眾多的python使用者的建議,從python2.0開始,string方法改為用S.method()的形式調用,只要S是一個字符串對象就可以這樣使用,而不用import。同時為了保持向后兼容,現在的Python中仍然保留了一個string的module。闡述編制Python程序相關注意什么是Python解釋器及其使用?深度剖析PythonWeb應用程序怎樣正確安裝Python?淺析Python中的Python全局變量其中定義的方法與python字符串操作是相同的,這些方法都最后都指向了用S.method()調用的函數。要注意,S.method()能調用的方法比string的module中的多,比如isdigit()、istitle()等就只能用S.method()的方式調用。對一個字符串對象,首先想到的操作可能就是計算它有多少個字符組成,很容易想到用S.len(),但這是錯的,應該是len(S)。因為len()是內置函數,包括在__builtin__模塊中。python字符串操作不把len()包含在string類型中,乍看起來好像有點不可理解,其實一切有其合理的邏輯在里頭。len()不僅可以計算字符串中的字符數。還可以計算list的成員數,tuple的成員數等等,因此單單把len()算在string里是不合適,因此一是可以把len()作為通用函數。用重載實現對不同類型的操作,還有就是可以在每種有len()運算的類型中都要包含一個len()函數。Python選擇的是第一種解決辦法。類似的還有str(arg)函數,它把arg用string類型表示出來。


  字符串中字符大小寫的變換:S.lower()#小寫S.upper()#大寫S.swapcase()#大小寫互換S.capitalize()#首字母大寫String.capwords(S)字符串在輸出時的對齊:S.lower()#小寫S.upper()#大寫S.swapcase()#大小寫互換S.capitalize()#首字母大寫String.capwords(S)字符串中的搜索和替換:S.lower()#小寫S.upper()#大寫S.swapcase()#大小寫互換S.capitalize()#首字母大寫String.capwords(S)使用上面的函數產后的翻譯表,把S進行翻譯,并把deletechars中有的字符刪掉。需要注意的是,如果S為unicode字符串,那么就不支持deletechars參數。可以使用把某個字符翻譯為python字符串操作的方式實現相同的功能。此外還可以使用codecs模塊的功能來創建更加功能強大的翻譯表。


  python字符串為什么有


  一.Python中如何聲明字符串


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


  如:


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


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


  在這里要注意的是,


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


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


  二.Python中的字符串類型


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


  在python中字符串默認采用的ASCII編碼,如果要顯示聲明為unicode類型的話,需要在字符串前面加上'u'或者'U'。


  下面看一段代碼


  print'我'


  printu'我'


  print'python'


  printu'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只有一個時,括號可以省略。

  • 本文來自: 老鐵博客,轉載請保留出處!歡迎發表您的評論
  • 相關標簽:
  • 已有0位網友發表了一針見血的評論,你還等什么?

    必填

    選填

    記住我,下次回復時不用重新輸入個人信息

    必填,不填不讓過哦,嘻嘻。

    ◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

    相關推薦

    色情激情片日本大全