[Python基礎(chǔ)語法] 專題三.字符串的基礎(chǔ)知識

      網(wǎng)友投稿 996 2022-05-29

      一.字符串基礎(chǔ)

      字符串指一有序的字符序列集合,用單引號、雙引號、三重(單雙均可)引號引起來.如:

      s1='www.csdn.net'?? s2="www.csdn.net"???s3='''aaabbb'''

      其中字符串又包括:

      1.轉(zhuǎn)義字符串

      像C語言中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,python也有轉(zhuǎn)義字符.如下:

      \-反斜杠符號 ??\'-單引號? ?\"-雙引號 ?\ a-響鈴? ?\b-退格(Backspace)

      \n-換行? ?\r-回車?? \f-換頁? ?\v-縱向制表符? ?\t-橫向制表符? ?\e-轉(zhuǎn)義

      \000-空? ?\oyy-八進(jìn)制數(shù)yy代表的字符 ? \xyy-十進(jìn)制yy代表的字符

      0-空? ?\oyy-八進(jìn)制數(shù)yy代表的字符 ? \xyy-十進(jìn)制yy代表的字符

      2.raw字符串

      Python中原始字符串(raw strings),r關(guān)閉轉(zhuǎn)義機(jī)制.告訴Python后面是連串,"\"不當(dāng)轉(zhuǎn)義字符處理.例:

      #轉(zhuǎn)義字符和raw字符 s1="aa\nbb" print s1 s2=r"aa\nbb" print s2 #輸出 aa bb aa\nbb #raw原始字符串處理磁盤路徑 open(r'C:\temp\test.txt','a+') open('C:\temp\test.txt','a+')

      3.unicode字符串

      告訴Python是Unicode編碼,Unicode(統(tǒng)一碼、萬國碼)是一種在計算機(jī)上使用的字符編碼.在Unicode之前用的都是ASCII碼,Unicode通過使用一個或者多個字節(jié)來表示一個字符.Python里面默認(rèn)所有字面上的字符串都用ASCII編碼,可以通過在字符串前面加一個'u'前綴的方式聲明Unicode字符串,這個'u'前綴告訴Python后面的字符串要編成Unicode字符串.例:s=u'aa\nbb'

      中文處理一直很讓人頭疼,推薦:Unicode和Python的中文處理

      4.格式化字符串

      字符串格式化功能使用字符串格式化操作符%(百分號)實現(xiàn),在%的左側(cè)放置一個字符串(格式化字符串),而右側(cè)放置希望格式化的值,也可是元組和字典.如果需要在字符串里包括百分號,使用%%.如果右側(cè)是元組的話,則其中每一個元素都會被單獨格式化,每個值都對應(yīng)一個轉(zhuǎn)化說明符.例:

      "your age %d,sex %s,record %f"%(28,"Male",78.5)

      輸出:'your age 28,sex Male,record 78.500000'

      它有點類似于C語言的printf("%d",x),其中百分號%相當(dāng)于C語言的逗號.其中字符串格式化轉(zhuǎn)換類型如下:

      d,i? 帶符號的十進(jìn)制整數(shù)

      o?? 不帶符號的八進(jìn)制

      u?? 不帶符號的十進(jìn)制

      x?? 不帶符號的十六進(jìn)制(小寫)

      X???不帶符號的十六進(jìn)制(大寫)

      e,E? 科學(xué)計數(shù)法表示的浮點數(shù)(小寫,大寫)

      f,F?? 十進(jìn)制浮點數(shù)

      [Python基礎(chǔ)語法] 專題三.字符串的基礎(chǔ)知識

      c?? 單字符

      r????字符串(使用repr轉(zhuǎn)換的任意Python)

      s???字符串(使用str轉(zhuǎn)換的任意Python)

      g,G? 指數(shù)大于4或小于精度值和e相同,否則和f相同

      二.字符串操作

      字符串的基礎(chǔ)操作包括分割,索引,乘法,判斷成員資格,求長度等.

      1.+連接操作

      如:s1='csdn' s2='Eastmount' s3=s1+s2

      print s1,s2 => 輸出:csdn Eastmount

      print s3 =>?輸出:csdnEastmount

      2.*重復(fù)操作

      如:s1='abc'*5

      print s1 =>?輸出:abcabcabcabcabc

      3.索引s[index]

      Python的索引格式string_name[index],可以訪問字符串里面的字符成員.

      4.切片s[i:j]

      Python中切片的基本格式是s[i:j:step],其中step表示切片的方向,起點不寫從0開始,終點不寫切到最后.如:

      s='abcdefghijk'

      sub=s[3:8]

      print sub => 輸出defgh_

      3????? 78?(起點是3 終點8不取)

      其中當(dāng)step=-1時表示反方向切片.如:

      s='abcdefghijk'

      sub=s[-1:-4:-1]

      print sub => 輸出kji

      因為最后一個"-1"表示從反方向切片,s[9]='j' s[-2]='j',正方向第一個'a'索引下標(biāo)值為0,最后一個'k'索引下標(biāo)值為-1.故'j'為-2,而sub[-1:-4:-1]表示從k(-1位置)切到h(-4位置,但不取該值).故結(jié)果為"kji".

      如果想完成字符串逆序,s='www.baidu.com',則可s1=[-1::-1]即可.起點為m(-1),無終點表示切到最后.

      5.字段寬度和精度

      前面講述的format()函數(shù)中涉及到該知識,如'%6.2f'%12.345678 輸出"口12.35"其中6表示字段寬度,2表示精度,故補(bǔ)一個空格,同時采用四舍五入的方法結(jié)果輸出12.35.

      同時,零(0)可表示數(shù)字將會用0填充,減號(-)用來實現(xiàn)左對齊數(shù)值,空白(" ")意味著正數(shù)前加上空格,在正負(fù)數(shù)對其時非常有用,加號表示不管正數(shù)還是負(fù)數(shù)都標(biāo)識出符號,對齊時也有用.例:

      #字段寬度和精度 num = 12.345678 s1 = '%6.2f'%num print s1 #補(bǔ)充0 s2 = '%08.2f'%num print s2 #減號實現(xiàn)左對齊 s3 = '%-8.2f'%num print s3 #空白 print ('% 5d'%10) + '\n' + ('% 5d'%-10) #符號 print ('%+5d'%10) + '\n' + ('%+5d'%-10) #輸出 12.35 00012.35 12.35 10 -10 +10 -10

      三.字符串方法

      字符串從string模塊中"繼承"了很多方法,下面講解一些常用的方法:

      find()

      在一個較長的字符串中查找子字符串,它返回子串所在位置的最左端索引,如果沒有找到則返回-1.其格式為"S.find(sub [,start [,end]]) -> int",其中該方法可接受可選的起始點和結(jié)束點參數(shù).而rfind()從右往左方向查找.

      title = 'Hello Python,Great Python' length = len(title) print length print title.find('Python') print title.find('Python',10,30) #輸出: 25 6 19

      join()

      其格式為"S.join(iterable) -> string",含義為"Return a string which is the concatenation of the strings in the iterable.?The separator between elements is S."即用來在隊列中添加元素,但隊列中元素必須是字符串.它是split方法的逆方法.

      seq = ['1','2','3','4'] sep = '+' print sep.join(seq) #連接字符串列表 sep表示'+'連接 dirs = '','usr','bin','env' print '/'.join(dirs) print 'C:'+'\\'.join(dirs) #輸出 1+2+3+4 /usr/bin/env C:\usr\bin\env

      split()

      字符串分割函數(shù),格式為"S.split([sep [,maxsplit]]) -> list of strings",將字符串分割成序列,如果不提供分割符,程序?qū)阉锌崭褡鳛榉指舴?

      #按空格拆分成4個單詞,返回list s = 'please use the Python!' li = s.split() print li print '1+2+3+4+5'.split('+') #輸出 ['please', 'use', 'the', 'Python!'] ['1', '2', '3', '4', '5']

      strip()

      去掉開頭和結(jié)尾的空格鍵(兩側(cè)且不包含內(nèi)部),S.strip([chars])可以去除指定字符.而函數(shù)lstrip()去除字符串最開始的所有空格,rstrip()去除字符串最尾部的所有空格.

      replace()

      該方法返回某字符串的所有匹配項均被替換后得到字符串,如文字處理程序中"查找并替換"功能.

      translate()

      該方法和replace一樣,可以替換字符串中某部分,但與前者的區(qū)別是translate只處理單個字符,它的優(yōu)勢在于可以同時替換多個,有時候效率比replace高.

      如:s='eastmount' s1=s.replace('e','E')?=>?替換后'Eastmount'

      字符串判斷方法

      isalnum()判斷是否都是有效字符(字母+數(shù)字),如判斷密碼帳號,輸出Ture\False.

      isalpha()判斷是否是字母

      isdigit()判斷是否是數(shù)字

      islower()判斷是否全是小寫

      isupper()判斷是否全是大寫

      isspace()判斷是否是空格(' ')

      lower()

      該方法返回字符串的小寫字母版,在判斷用戶名不區(qū)分大小寫時使用.upper()轉(zhuǎn)換為大寫,title()函數(shù)將字符串轉(zhuǎn)換為標(biāo)題——所有單詞的首字母大寫,而其他字母小寫,但是它使用的單詞劃分方法可能會得到不自然的結(jié)果.

      s = 'this is a good idea' s1 = s.upper() print s1 s2 = s.title() print s2 #輸出 THIS IS A GOOD IDEA This Is A Good Idea

      希望文章對大家有所幫助,如果文章中有錯誤或不足之處,還請海涵,也希望大家提出意見與君共勉.勿噴~

      2014年分享的文章,原文地址:https://blog.csdn.net/Eastmount/article/details/39599061

      希望能與大家一起在華為云社區(qū)共同進(jìn)步

      (By:Eastmount 2021-07-19 夜于武漢)

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Kafka學(xué)習(xí)之路 (一)Kafka的簡介
      下一篇:面試官對于JVM類加載機(jī)制的猛烈炮火,你能頂住嗎?
      相關(guān)文章
      亚洲色偷偷偷网站色偷一区| 亚洲人成色77777| 亚洲AV永久无码精品水牛影视| 国产精品亚洲玖玖玖在线观看| 亚洲av无码专区青青草原| 亚洲香蕉久久一区二区三区四区| 亚洲精品日韩中文字幕久久久| 亚洲邪恶天堂影院在线观看| 亚洲大片在线观看| 亚洲欧洲日产国产综合网| 亚洲AV本道一区二区三区四区| 久久精品国产亚洲AV麻豆王友容| 国产∨亚洲V天堂无码久久久| 亚洲区小说区图片区QVOD| 久久亚洲综合色一区二区三区| 亚洲精品无码专区在线在线播放 | 亚洲精品国产情侣av在线| 亚洲高清免费在线观看| 亚洲第一页在线观看| 亚洲国产综合人成综合网站00| 亚洲美女视频网址| 亚洲国产精品成人综合久久久| 亚洲国产午夜电影在线入口| 亚洲日本久久久午夜精品| 亚洲综合小说另类图片动图 | 久久亚洲精品专区蓝色区| 亚洲中文字幕无码久久2020| 亚洲精品国产高清在线观看| 亚洲精品色在线网站| 亚洲日韩涩涩成人午夜私人影院| 国产成人麻豆亚洲综合无码精品| 国产成人A人亚洲精品无码| 亚洲av女电影网| 亚洲成人免费在线观看| 亚洲va在线va天堂va手机| 亚洲av永久无码天堂网| 亚洲国产av无码精品| 国产精品亚洲а∨无码播放| 久久亚洲精品成人AV| 亚洲男人的天堂久久精品| 亚洲区日韩精品中文字幕|