日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python字符串添加成员_Python - 字符串的操作方法

發布時間:2024/9/27 python 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字符串添加成员_Python - 字符串的操作方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串操作方法

生成字符串

str = 'Python string Function study'

sequence類型都支持的一些通用操作:

成員檢查:in、not in 'Py' in str 'python' not in str

連接:+ str_new = str1 + str2

復制:* str * 2

下標取值:s[i] str[3]

切片:s[i : j] str[3:8]

長度檢查:len(s) len(str) print('%s length = %d' % (str,len(str)))

最小值:min(s) min(str) 空格在上面字符串中是最小的

最大值:max(s) max(str) 大寫字母要小于小寫字母

字符串切片

1. 字符串變量名[x:y],表示下標從x到y的一段字符串(不包括y)。

當x不寫,像[:y],表示從頭開始,相當于[0:y]。當y不寫時,表示一直到尾。當x和y兩個都不寫時,就表示整個字符串。

str_result = str[3:8]

2. 步長切片截取

使用兩個冒號來實現按一定“步數”來取值的 [x:y:z]

str_result = str[1:9:3] #即從第1個字符開始,每隔3個位移取一個值,到第9個字符截止(不包括第9個字符)

一. 查找 & 替換類方法

1. str.count(sub, start= 0,end=len(string))

返回字符串里某個字符或是子字符串出現的次數??蛇x參數為在字符串搜索的開始(默認為第一個字符)與結束(默認為最后一個字符)位置。

str = 'Python string Function'

str_result = str.count('th', 2, 15)

2. str.find(str, beg=0, end=len(string)) str.rfind(sub[, start[, end]]) str.index(sub[, start[, end]]) str.rindex(sub[, start[, end]])

檢測字符串中是否包含子字符串 str ,如果指定可選參數 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,如果包含子字符串返回開始的索引值,否則返回-1。

index()方法與find()方法一樣,如果包含子字符串則返回開始的索引值,只不過index()方法如果str不在 string中會報一個異常。

str = 'Python string Function'

str_result = str.find('python', 1, len(str)) #find()查找的是子字符串在全字符串中出現的第一個位置,匹配到字符串就結束查找,不管后面還有沒有匹配的字符串。

str_result = str.rfind('string', 1, len(str)) #從最右邊開始查找,但返回的index位置卻是從原字符串的最左邊開始算的

str_result = str.index('Python', 0, len(str))

str_result = str.rindex('string', 0, len(str))

3. str.replace(old, new[, count])

返回一個新字符串,原串中的old被替換為new,可選參數count指定替換次數。

str = 'aaalllaaannn'

str_result = str.replace('a', 'd', 4)

4. str.maketrans(x[, [y, z]]) str.translate(map)

用于創建字符映射的轉換表,接受兩個參數x, y的最簡單的調用方式,第一個參數是字符串中需要轉換的字符組成的字符串,第二個參數也是字符串表示要轉換的目標。 可選參數Z 的意思是刪除原字符串中的相應字符

兩個參數字符串的長度必須相同,且為一一對應的關系。

table = str.maketrans('al', 'bc', 'n')

str = 'alan'

str_result = str.translate(table)

二. 判斷類方法,通常返回True和False

5. str.endswith(suffix[, start[, end]]) str.startswith(str, beg=0,end=len(string))

用于判斷字符串是否以指定子字符串 結尾和開頭,如果是則返回True,否則返回False。如果可選參數指定值,則在指定范圍內檢查。默認檢索字符串的開始(默認為第一個字符)與結束(默認為最后一個字符)位置。

str_result = str.endswith('dy', 10, 30)

str_result = str.startswith('P', 0, 10)

6. str.isalnum()

檢測字符串是否由字母和數字組成,如果 string 至少有一個字符并且所有字符都是字母或數字則返回 True,否則返回 False

str = 'abc 123'

str_result = str.isalnum() #字符串中包含空格也會返回False, 中文字符是被允許的,也會返回True

7. str.isalpha()

檢測字符串是否只由字母組成, 如果字符串至少有一個字符并且所有字符都是字母則返回 True,否則返回 False

str = 'abc'

str_result = str.isalpha() #中文字符是被允許的,也會返回True

8. str.isdigit() str.isdecimal() str.isnumeric()

檢測字符串是否只由數字組成, 如果字符串至少有一個字符并且只包含數字則返回 True 否則返回 False

str.isdecimal():判斷字符串是否只包含十進制數字字符,包括多國語言的十進制數字字符表現形式

str.isdigit():判斷字符串是否只包含數字,這里的數字包括十進制數字和其它特殊數字(如上標數字等),一個數字是擁有如下屬性值的字符:Numeric_Type=Digit或Numeric_Type=Decimal。

str.isnumeric():判斷字符串是否只包含數字字符。數字字符范圍很大,一般來說,數字字符是擁有如下屬性值的字符:Numeric_Type=Digit, Numeric_Type=Decimal或Numeric_Type=Numeric。

str = '12345'

str_result = str.isdigit()

str_result = str.isdecimal()

str_result = str.isnumeric()

9. str.isspace()

檢測字符串是否只由空格或制表符(\t)組成. 是則返回True, 否則返回False

str = ' '

str_result = str.isspace()

10. str.islower() str.isupper()

檢測字符串中的字母字符是否全部由小寫字母組成. 如果字符串中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False

isupper()方法檢測字符串中所有的字母是否都為大寫。同樣返回True, 或是False

這兩種方法僅判斷字符串中的字母字符,不理會其它字符。字符串必須至少包含一個字母字符,否則返回False

str = 'al%an'

str_result = str.islower()

str_result = str.isupper()

11. str.istitle()

檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。是則返回 True,否則返回 False.

字符串必須至少包含一個字母字符,否則返回False。即使首字母字符前面有非字母字符,如中文、數字、下劃線等,也不影響對首字母字符的判斷。

str = "Alan Python"

str_result = str.istitle() #"Alan's Python" 返回的結果是False

12. str.isidentifier()

判斷字符串是否是合法的標識符,字符串僅包含中文字符合法,實際上相當于判斷的是變量名是否合法

str = "_Alan_Python"

str_result = str.isidentifier()

13. str.isprintable()

判斷字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如轉義字符,將返回False

str = 'alan\n python'

str_result = str.isprintable()

三. 格式化類方法,返回一個格式化的新字符串

14. str.lower() str.upper() str.swapcase()

把全部字母字符轉換成小寫 / 大寫,不去管其它非字母字符。字符串全部為非字母字符也是合法的,但返回原字符串.

swapcase()方法把字符串中的大小寫字母互換,大寫轉換成小寫,小寫轉換成大寫。不去管非字母類字符。

str = '中國 Alan Xu'

str_result = str.lower()

str_result = str.upper()

str_result = str.swapcase()

15. str.capitalize()

將字符串的第一個字符轉換為大寫, 其余轉換為小寫

如果字符串首字符為非字母字符,將返回原字符,但其余字符仍轉換為小寫。字符串僅包含非字母字符合法,但返回原字符串。

str = '中Alan Xu'

str_result = str.capitalize()

16. str.title()

字符串中每個單詞的首字母大寫,其余小寫。單詞的首字符為非字母字符也不影響轉換。字符串僅包含非字母字符合法,但返回原字符串

str = '中alAn xU'

str_result = str.title()

17. str.center(width[, fillchar]) str.ljust(width[, fillchar]) str.rjust(width[, fillchar])

返回一個指定的寬度 width 居中 / 左對齊 / 右對齊 的字符串,可選參數fillchar 為填充的字符,默認為空格。 如果 width 小于字符串長度直接返回字符串

str = 'Alan Xu'

str_result = str.center(50, '*') #width為偶數時,fillchar將平均地填充到原字符串的開頭和結尾;為奇數時,fillchar優先填充前面

str_result = str.ljust(50, '*')

str_result = str.rjust(50, '*')

18. str.lstrip([chars]) str.rstrip([chars]) str.strip([chars])

返回一個去除了特定字符的新字符串,chars參數是一個字符串,它包含了所有將要被移除的字符集合。默認為空格

從原字符串的 最左邊 / 最右邊 / 兩端 開始,匹配chars里包含的所有字符,直至遇到第一個非chars字符為止,原字符串中匹配到的所有字符都被移除。

str = 'alan xu python'

str_result = str.lstrip('a ln') #當遇到字符x不屬于'a ln'時結束,移除x前的所有字符

str_result = str.rstrip('a ln')

str_result = str.strip('a ln')

19. str.expandtabs([tabsize])

把字符串中的所有制表符替換成零個或多個空格,每個制表符替換成多少個空格,由制表符在字符串中的位置和tabsize共同決定。tabsize指定每個制表符替換成的空格數,默認為8個

tr = '\t\talanhah\tis hero'

str_result = str.expandtabs() #制表符的制表位是從每行開頭算起的,所以第三個制表符的制表位是從行首開始的第24個位置,所以就只有1個空格出現

20. str.zfill(width)

返回一個長度為width的字符串,最左邊填充0。如果width小于等于原字符串長度,則返回原字符串。主要用于數字類字符串的格式化。

str = '123'

str_result = str.zfill(8)

21. str.format(*args, **kwargs) str.format_map(mapping)

增強了字符串格式化的功能, 基本語法是通過 {} 和 : 來代替以前的 %

format() 函數可以接受不限個參數,位置可以不按順序。

21.1 通過位置

str_result = '{0},{1}'.format('Alan', 'Xu') #Alan,Xu

str_result = '{},{}'.format('Alan', 'Xu') #Alan,Xu (不能出現同時一個{}和一個{1}這樣)

str_result = '{1}{0}{1}'.format('Alan', 'Xu') #XuAlanXu

21.2 通過關鍵字參數

str_result = '我的名字叫:{name},我的年齡:{age}'.format(name = 'Alan', age = 26)

21.3 通過對象屬性

class person:

def __init__(self, name, age):

self.name, self.age = name, age

def __str__(self):

return '我的名字叫:{self.name}, 年齡是:{self.age}'.format(self = self)

str_result = person('Alan', 26)

21.4 通過下標

str_list = ['Alan', 26]

str_result = '名字:{0[0]}, 年齡:{0[1]}'.format(str_list)

格式限定符

21.5 填充與對齊

^、分別是居中、左對齊、右對齊,后面帶寬度

:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充

str_result = '{:*^16}'.format('alan') #******alan******

str_result = '{:*<16}'.format('alan') #alan************

str_result = '{:*>16}'.format('alan') #************alan

21.6 精度與類型f

str_result = '{:.2f}'.format(3.1415926) #3.14 其中.2表示長度為2的精度,f表示float類型。

21.7 其他類型

主要就是進制,b、d、o、x分別是二進制、十進制、八進制、十六進制。

str_result = '{:b}'.format(26) #11010

str_result = '{:d}'.format(26) #26

str_result = '{:o}'.format(26) #32

str_result = '{:x}'.format(26) #1a

用,號還能用來做金額的千位分隔符。

str_result = '{:,}'.format(1234567890) #1,234,567,890

用 % 號實現百分比

str_result = '{:.2%}'.format(0.26) #26.00%

指數記法

str_result = '{:.2e}'.format(26) #2.60e+01

str.format_map(mapping)類似 str.format(*args, **kwargs) ,不同的是 mapping 是一個字典對象。

People = {'name':'alan', 'age':26}

str_result = 'My name is {name},i am {age} old'.format_map(People) # 'My name is john,i am 56 old'

新增1. str.encode(encoding='UTF-8',errors='strict')

以 encoding 指定的編碼格式編碼字符串(如"UTF-8")。errors參數可以指定不同的錯誤處理方案。該方法返回編碼后的字符串。

errors -- 設置不同錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個UnicodeError。

其他可能的值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊的任何值。

str = '我在學習Python'

str_result = str.encode('UTF-8','strict')

str_result.decode('UTF-8', 'strict') #byte類型 方法 decode()解碼

四. 拆分組合類方法

22. str.partition(sep) str.rpartition(sep)

拆分字符串,返回一個包含三個元素的元組。

如果未能在原字符串中找到Sep,則元組的三個元素為:原字符串,空串,空串;否則,從原字符串中遇到的第一個Sep字符開始拆分,元組的三個元素為:Sep前的字符串,Sep字符,Sep之后的字符串;

rpartition(sep)從原字符串的最右邊開始拆分,返回:倒數第一個Sep之前的字符串,Sep字符,Sep之后的字符串。

str = 'aabcdefgdeh'

str_result = str.partition('de') #sep為空時,會報錯

str_result = str.rpartition('de')

23. str.split([sep[, maxsplit]]) str.rsplit([sep[, maxsplit]])

返回一個以Sep分隔的列表,maxsplit指定拆分次數(因此,列表中元素的個數為maxsplit + 1)。Sep默認為空格,maxsplit默認不限制拆分次數。

1)如果未指定Sep或指定Sep為None,str兩端的空格將舍棄;如果指定Sep(不管能否在原字符串中找到Sep),str兩端的空格將保留

2)如果未能在原字符串中找到Sep,則返回一個僅包含一個元素的列表,這個元素就是原字符串。

3) str.rsplit()只是從最右邊開始拆分。只有在指定maxsplit的情況下才會看到不同效果

str = ' hello alan '

str_result = str.split() #結果['hello', 'alan']

str_result = str.split('l', 2) #結果[' he', '', 'o alan ']

str_result = str.rsplit('l', 2) #結果[' hel', 'o a', 'an ']

24. str.join(iterable)

以指定字符串str作為分隔符,將iterable對象中所有的元素(字符串表示)合并為一個新的字符串. 如果傳入一個非iterable對象,如整數、布爾值等,將返回Type Error。

iterable object或iterator type最主要的特征是支持兩個函數:__iter__()和__next__(),雖然不是很準確,但可以簡單的認為支持使用for語句逐個取值的數據類型都是迭代器對象。

sequence type(六種:strings、byte objects、byte arrays、lists、tuples、range objects)和dictionary都屬于iterable對象

str = 'ab'

str_result = str.join('cdef') #結果cabdabeabf (即:cab dab eab f)

25. str.splitlines([keepends])

拆分一個包含多行的字符串,以每行為一個元素返回一個列表。如果字符串不是多行,則返回原字符串。keepends是一個True字符或非零整數,表示保留行尾標志(即換行符)。該方法多用于處理文件。

str = '''ab

cd

ef'''

str_result = str.splitlines()

字符串方法實際操作

總結

以上是生活随笔為你收集整理的python字符串添加成员_Python - 字符串的操作方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。