您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Python中與那些字符串操作函數,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
#定義空字符串 >>> name='' #定義非空字符串 >>> name="luoahong" #通過下標訪問 >>> name[1] 'u' #不能修改字符串的值,否則會報錯 >>> name[2] = "3" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
特別提醒:字符串如果修改的話,字符串所在的內存地址也跟著變化,所以不可被修改,但是對于列表來說,可以修改是因為列表的內存是不變的,可以直接在上面修改
特別提醒:字符串其實和列表,元組一樣,也是可以切片的
>>> name="ahong luo" >>> name[1:4] #取1到4之間的字符,包括1,不包括4 'hon' >>> name[1:-1] #取1到-1之間的字符,包括1,不包括-1 'hong lu' >>> name[0:3] 'aho' >>> name[:3] #從頭開始取,0可以省略,效果等同于name[0:3] 'aho' >>> name[3:] #想取到最后一個值,必須不能寫-1,只能這么寫 'ng luo' >>> name[0::2] #后面的2表示:每隔一個字符就取一個 'aoglo' >>> name[::2] #從頭開始0可以省略,效果跟上一句一樣 'aoglo'
>>> name="ahong luo" >>> name.capitalize() 'Ahong luo' >>>
sub:統計的字符,start:開始位,end:結束位,start和end默認為空時,則表示全部字符中去統計
>>> name="ahong luo"
#有開始和結束符
>>> name.count("o",1,5) 1 #從整個字符串中統計字符 >>> name.count("o") 2 >>>
如果width(字符寬度)小于等于(<=)字符串的長度,則返回原字符串,如果大于(>)字符串的,則用fillchar(填滿字符)填滿,處理結果等于width,字符串位于fillchar的中間
>>> name="ahong luo" >>> len(name) 9 #10小于等于字符串寬度 >>> name.center(12,'-') '-ahong luo--' #50大于字符串長度,并且字符串位于填充字符的中間 >>> name.center(50,'-') '--------------------ahong luo---------------------' >>> len(name.center(50,'-')) 50
如果字符串的長度大于width(字符寬度),則返回原字符串,如果小于width,則用fillchar(填滿字符)填滿,處理結果等于width,fillchar位于字符串的最右邊
>>> name="ahong luo" >>> len(name) 9 #小于等于字符串的長度 >>> name.ljust(8,'-') 'ahong luo' #大于字符串的長度 >>> name.ljust(50,'-') 'ahong luo-----------------------------------------'
特別提醒:ljust中的l表示left的意思,表示從右向左
如果字符串的長度大于width(字符寬度),則返回原字符串,如果小于width,則用fillchar(填滿字符)填滿,處理結果等于width,fillchar位于字符串的最左邊
>>> name="ahong luo" >>> len(name) 9 >>> name.rjust(8,'-') 'ahong luo' >>> name.rjust(50,'-') '-----------------------------------------ahong luo'
特別提醒:ljust中的l表示left的意思,表示從左向右
字符串的編碼和解碼,在這邊不用說了,我專門寫了一篇博客,詳細地址:猛擊這里
判斷是否已suffix結尾,是返回True,否返回Fales
suffix:表示字符,start:開始位,end:結束位,start和end默認為空是,表示從整個字符串的結尾去判斷>>> name="ahong luo"
>>> name.endswith('0',1,4) False
>>> name.endswith('o') True >>> name.endswith('o',1,4) False
全文查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1
sub:字符或者字符串,start:開始位,end:結束位,start和end默認為空時,則在整個字符串中查找
>>> name="ahong luo" #沒找到,則返回-1 >>> name.find("lu",1,4) -1 >>> name.find("a",2) -1 >>> name.find("lu") 6 >>> name.find("lu",1,6) -1 >>> name.find("lu",1,10) 6 >>>
從左向右查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1
>>> name="ahong luo" #找到 >>> name.rfind("a") 0 #未找到 >>> name.rfind("a",2) -1
①關鍵字拼接也是官方推薦 1 2 3 4 5 6 7 8 9 name = "alex" age = 18 info = '''----info----- name:{_name} age:{_age} '''.format(_name=name,_age=age) print(info) ②占位符拼接 1 2 3 4 5 6 7 8 9 name = "alex" age = 18 info = '''----info----- name:{0} age:{1} '''.format(name,age) print(info)
數據格式,以字典形式傳入
>>> name="name:{name},age:{age}" >>> name.format_map({"name":"luoahong",'age':23}) #輸出結果 'name:luoahong,age:23'
是否是一個阿拉伯數字和字母,它包含因為英文字符+(1-9)數字,中間不能有特殊字符
>>> age='23' >>> age.isalnum() True #有特殊字符的 >>> age='ab23' >>> age='ab' >>> age.isalnum() True >>> age='ab' >>> age.isalpha() True >>>
是否是一個純的英文字符,包含大寫
>>> age = 'ab' >>> age.isalpha() True #夾著數字 >>> age = 'ab23' >>> age.isalpha() False #大寫 >>> age = 'Ab' >>> age.isalpha() True
判斷是否是一個整數
判斷是否是一個空格
#不是空格 >>> age = ' age' >>> age.isspace() False #是空格 >>> age = ' ' >>> age.isspace() True
是否是一個標題(字符串中的每個單子首字母大寫)
#每個單詞的首字母是小寫 >>> name="luoahong" >>> name.istitle() False >>> name="luo a hong" >>> name.istitle() False #每個單詞的首字母大寫 >>> name="Luo A Hong" >>> name.istitle() True >>> name="Luoahong" >>> name.istitle() True
是否是大寫,注意字符串必須全部是大寫才會返回True,否則返回False
#全部大寫 >>> name="LUO" >>> name.isupper() True #小寫 >>> name="Luo" >>> name.isupper() False >>>
序列用某個字符拼接成一個字符串,注意的是,序列的元素必須是str類型
>>> a = ['1','2','3'] >>> '+'.join(a) '1+2+3'
字符串中的大寫字母轉換為小寫字母
>>> name="LuoAHong" >>> name.lower() 'luoahong' >>>
字符串中的小寫字母轉換為大寫字母
>>> name="LuoAHong" >>> name.upper() 'LUOAHONG'
去掉左右兩邊的空格(space)和回車(\n)
>>> name= " \n luoahong \n" >>> name.strip() 'luoahong'
刪掉左邊到右的空格(space)和回車(\n)
>>> name= " \n luoahong \n" >>> name.lstrip() 'luoahong \n'
刪掉右邊到左邊的空格(space)和回車(\n)
>>> name= " \n luoahong \n" >>> name.rstrip() ' \n luoahong'
至此,方法前有l(left)和r(right)的函數,都是對之前函數的一個擴展,帶l的表示至始至終從右到左操作,記住左邊才是最終目的地,而帶r的至始至終都是從左到右,因為右邊才是它的終極目標
分割函數,默認是以空格分割(space)生成一個列表,如果其他字符分割,輸入其他字符參數
>>> name="ahong luo" #默認為空,按空格分割 >>> name.split() ['ahong', 'luo'] >>> name="ahong+luo" #以"+"字符分割 >>> name.split("+") ['ahong', 'luo'] #以'\n'分割 >>> name="ahong\nluo" >>> name.split("\n") ['ahong', 'luo']
以換行符分割,這個一般在windows上開發,移到Linux上執行,或者在Linux上開發,移到Windows上執行,因為換行在windows上是"\r\n",linux上是'\n'
>>> name="ahong\nluo" >>> name.splitlines() ['ahong', 'luo']
把大寫換成小寫,把小寫換成大寫
>>> name="Luo" >>> name.swapcase() 'lUO'
判斷是否以prefix開始,是返回True,否返回Fales
prefix:表示字符或者字符或者字符串,start:開始位,end:結束位,start和end默認為空是,表示從整個字符串的結尾去判斷
>>> name="ahong luo" >>> name.startswith("luo") #開頭找到"luo"字符串 False >>> name.startswith("h",3,5) #在索引3到5之間沒有找到以字符'h'開頭 False
old:將被替換的子字符串; new:新字符串,用于替換old子字符串;max:可選字符串, 替換不超過 max 次
>>> name="wo shi luo a hong" >>> name.replace("shi","bushi") 'wo bushi luo a hong' #原字符串沒有改變 >>> name.replace("shi","bushi",0) 'wo shi luo a hong' >>> name.replace("shi","bushi",1) 'wo bushi luo a hong'
字符的長度是否大于等于(>=)with,如果比width小,則在字符串錢用0填充,如果>=width,則返回原字符串
>>> name="luoahong" >>> len(name) 8 #width大于字符串長度 >>> name.zfill(11) '000luoahong' #width小于等于字符串長度 >>> name.zfill(8) 'luoahong' >>>
Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。
上述就是小編為大家分享的Python中與那些字符串操作函數了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。