Python str方法總結

1.  str.capitalize()

#capitalize 使字符串首字母大寫
test = 'afaASN'
v1 = test.capitalize()
print(v1)
Afaasn

 

 

2.  str.casefold()

test = 'afaASN'
v1 = test.casefold()
print(v1)
# casefold 將字符串所有轉爲小寫
# casefold 也能夠將非英文轉爲小寫
# lower 只支持英文字母轉爲小寫
afaasn

 

 

3.  str.center()

# 按照給定字符和總寬度居中顯示
# 以下共輸出15個字符
# t共佔8個字符
# 其他7個字符位用e進行填充
t = 'cYxFbFbB'
v = t.center(15,'e')
print(v)
eeeecYxFbFbBeee

 

 

4.  str.count()

# str.count(sub, start, end)
# 子字符串在原字符串中的個數。
# sub -- 須要搜索的子字符串
# start -- 字符串開始搜索的位置,不填默認0
# end -- 字符串結束搜索的位置,不填爲最後
t = 'cYxFbFbB'
v = t.count('b',5,7)
print(v)
1

 

 

5.  str.encode()

# str.encode
# encoding="utf-8", errors="strict"
# encoding -- 編碼方式,errors -- 錯誤的處理方案。
# 默認爲 'strict',是編碼錯誤引發一個UnicodeError。
# 其餘可能得值有 'ignore'--‘ ’, 'replace'--‘?’, 'xmlcharrefreplace'-- 可擴展標記語言替換,
# 'backslashreplace'--反斜槓替代 以及codecs.register_error() 註冊的全部值。
s = "aaa"
v = s.encode('ascii')
print(v)
b'aaa'

 

 

6.  str.endswith()

# (suffix, start, end)
# suffix -- 子字符串
# start -- 長字符串中的開始位置,默認0
# end -- 長字符中結束位置,默認最後
a = 'd,cf,gtr,bnfg'
v1 = a.endswith("g", )
print('v1: ', v1)
v2 = a.endswith('fg')
print('v2: ', v2)
v3 = a.startswith('d')
print('v3: ', v3)
v4 = a.startswith('c')
print('v4: ', v4)
v5 = a.endswith(',', 2, 9)
print('v5: ', v5)
v1:  True
v2:  True
v3:  True
v4:  False
v5:  True

 

 

7.  str.expandtabs()

# (tabsize=8)
# 把Tab--‘\t’變爲其餘長度的空格符,'\t'默認爲8
a = 'j\tj\tj\t\ng\tg\tg\t'
v = a.expandtabs(9)
print(v)
j        j        j        
g        g        g        

 

 

8.  str.find()

# (self, sub, start=None, end=None)
# 檢測字符串中是否包含子字符串sub,start(開始)到end(結束)
# 若是包含子字符串,則返回開始的(最小的)索引值,不然返回-1。
# 默認爲0和最後
a = 'jfunsjfbbvdf'
v = a.find('fb',3,-1)
print(v)
v1 = a.find('fv')
print(v1)
#輸出爲 -1 表示沒有找到
6
-1

 

 

9.str.rfind()

a = 'jfunsjfbbvdf'
v2 = a.rfind('f')
print(v1)
# 輸出最大索引
11

與find用法相似git

 

9.  str.format() 

a = "你是{0}麼?你是{1}麼?"
v = a.format('狗子','屎蛋')
print(v)
你是狗子麼?你是狗蛋麼?

 

  format  的另外一種用法api

l = ['狗子','屎蛋']
li = ['a','b']
a = '你不是{0[0]},就是{1[1]}'.format(l,li)
print(a)
你不是狗子,就是b

 

  format 填充app

a = '{0:%<10}'.format('二貨')
print(a)
a1 = '{0:&>10}'.format('二貨')
print(a1)
a2 = '{0:@^10}'.format('二貨')
print(a2)
二貨%%%%%%%%
&&&&&&&&二貨
@@@@二貨@@@@

 

  format 精度與進制ide

 

# 保留幾位小數
a = '{0:.3f}'.format(1/3)
print(a)
a1 = '{0:.1f}'.format(1/3)
print(a1) 
0.333
0.3

 

# 轉換爲二進制
a2 = '{0:b}'.format(8)
print(a2)
# 轉換爲八進制
a3 = '{0:o}'.format(8)
print(a3)
1000
10

 

# 千分位格式化
a = '{:,}'.format(111111111111)
print(a)
111,111,111,111

 

 

10.  str.format_map()

#  與str.format(**mapping)相似
# 區別在於format_map直接用字典,而不是複製一個
# 下面是官方例子,其中Default是dict的一個子類。
class Default(dict):
    def __missing__(self, key):
        return key


print("{name} was born in {country}".format_map(Default(name="Guide")))
Guide was born in country

 

 

11.  str.index()

# str, beg=0, end=len(string)
# 與str.find相似
# 區別在於,index若是找不到要尋到的字符,會獲得ValueError
# 而find則返回-1。
print("djfdnvjdfdvhb".find("i"))
print("sffdvbv".index("i"))
Traceback (most recent call last):
-1
  File "C:/Users/123/PycharmProjects/py2018/test", line 6, in <module>
    print("sffdvbv".index("i"))
ValueError: substring not found

 

 

12.  str.rindex()

# str, beg=0, end=len(string)
# 用法與str.rindex一致
# 這個獲得的是結束的(最大的)索引值。
print("jfbvjdsvbskj".rindex("j"))
11

 

 

13.  str.isalum()

# 若是字符串至少有一個字符,而且全部字符都是字母或數字則返回 True,不然返回 False
print('vbvhfb3453456'.isalnum())
print('dchj@#$124'.isalnum())
True
False

 

 

14.  str.isalpha()

# 若是字符串至少有一個字符,而且全部字符都是字母或漢字則返回 True,不然返回 False。
print('gnvj陳'.isalpha())
print('bfv!陳'.isalpha())
True
False

 

 

15.  str .isdecimal()  str.isdigit()  str.isnumeric()

# 3個都是判斷字符串是否是數字字符
# str.isdecimal()  表面上就是: str 是阿拉伯數字123456這樣的爲True,漢字數字,羅馬數字爲False
# str.isdigit() 除了漢字數字爲False,其餘數字都爲True,包括單字節數字b" "。
# str.isnumeric() 除了單字節數字b" "是Error,全部的數字都爲True。
print('1234'.isdecimal())
print('二②'.isdecimal())

print('二②'.isdigit())
print('②2'.isdigit())

print('c2!'.isnumeric())
print('3二②'.isnumeric())
True
False
False
True
False
True

 

 16.  str.isidentifier()

# 檢測字符串是不是字母開頭。
print('hh12'.isidentifier())
print('!23fd'.isidentifier())
print('12cfg'.isidentifier())
True
False
False

 

 

17.  str.islower()

#若是字符串中的全部字符都是小寫,而且至少有一個字符,則返回True,不然返回False。
print('bh'.islower())
print('Hh'.islower())
True
False

 

 

18.  str.isprintable()

#判斷是否是都爲可見/可打印字符
print('oo\noo\too'.isprintable())
print('oo oo'.isprintable())
False
True

 

 

19.  str.isspace()

#判斷是否爲空格字符(注意不是空)
print(' '.isspace())
print('h  h'.isspace())
True
False

 

 

20.  str.istitle()

#字面上意思是:判斷字符串能不能作標題
# 判斷每一個單詞首字母是否大寫
print('He He'.istitle())
print('HE HE'.istitle())
print('He he'.istitle())
True
False
False

 

 

21.  str.title()

#把字符串變爲標題格式。
print('he he he '.title())
He He He 

 

 

22.  str.isupper()

#與str.islower()對應
# 若是字符串中的全部字符都是大寫,而且至少有一個字符,則返回True,不然返回False。
print('HHHH'.isupper())
print('Hhh'.isupper())
True
False

 

 

23.  str.join()

 

#以str做爲分隔符
# 將string全部的元素合併成一個新的字符串
# 若string爲空,則TypeError
print('123'.join(['a','b','c','d']))
print('123'.join('asdf'))
a123b123c123d
a123s123d123f

 

 

24.  str.ljust(width, fillchar)

#獲得一個原始字符串左對齊
# 並使用fiichar填充至指定長度的新字符串
# 若指定的長度小於原字符串的長度則返回原始字符串
# 與format的填充用法類似。
# width--指定長度
# fillchar--填充字符串,默認空格字符。
print('asd'.ljust(10,"!"))
print('asd'.ljust(2,'@'))
print('asd'.ljust(10))
asd!!!!!!!
asd
asd  

 

 

25.  str.rjust(width, fillchar)

#獲得一個原始字符串右對齊
# 並使用fiichar填充至指定長度的新字符串
# 若指定的長度小於原字符串的長度則返回原始字符串
# 與format的填充用法類似。(用法與ljust一致)

 

 

26.  str.lower()

# 把全部字母轉化爲小寫
# 與str.upper()相對
# 與str.casefold()區別

 

 

27.  str.upper()

# 把全部字母轉化爲大寫

 

 

28.  str.lstrip(chars)

# 刪除str左邊全部出如今chars子字符串
# chars爲空時默認空格字符
print(' who are you '.lstrip())
print('who are you '.lstrip('ghw'))
print('who are you '.lstrip('Whz'))
who are you 
o are you 
who are you 

 

 

29.  str.rstrip(chars)

# 與str.lstrip(chars)對應且方法一致
# 刪除str右邊全部出如今chars子字符串
# chars爲空時默認空格字符。

 

 

30.  str.strip(chars)

# 與str.lstrip(chars)和str.rstrip(chars)用法一致
# 這個是刪除兩邊全部出如今chars子字符串
# chars爲空時默認空格字符。

 

 

31.  str.maketrans(intab, outtab)    str.translate()

# 獲得一個用於str.translate()的映射,其實就是一個字典。
# intab--是原始字符
# outtab--翻譯後的字符,長度與intab相等
intab = 'abcde'
outtab = '12345'
name = 'asdfjhjcdjkle'
# str.maketrans獲得的字典翻譯str
x = ''.maketrans(intab, outtab)
# x就是maketrans獲得的字典
# 字典中的映射是字符對應的Unicode編碼
print(x)
print(name.translate(x))
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53}
1s4fjhj34jkl5

 

 

32.  str.partition(char)  str.split(char, count)

# 做用都是字符串分割
# str.partition(char)根據字符串char分割str
# 獲得一個3元素元組(只識別第一次出現的字符串)。
# char不能爲空
print('www.baidu.com'.partition('.'))
('www', '.', 'baidu.com')

 

#  str.split(char,count)  根據字符串char分割str
# 獲得一個列表(識別全部的char,而且char不包含在列表內)
# char默認爲空格符。
# char--子字符串
# count--切割次數,默認所有。
print('www.baidu.com.cn'.split('.',3))
['www', 'baidu', 'com', 'cn']

 

 

33.  str.rpartition(char)

# 用法與str.partition(char)一致
# str.rpartition(char)根據字符串char分割
# str獲得一個3元素元組(只識別最後一次出現的字符串
# char不能爲空

 

 

34.  str.rsplit(char, count)

#與str.split用法一致
# 可是str.rsplit是從後往前工做
#     str.split是簽到後工做
print('aswwsdjnvwwnh'.rsplit('ww',1))
print('aswwsdjnvwwnh'.split('ww',1))
['aswwsdjnv', 'nh']
['as', 'sdjnvwwnh']

 

 

35.  str.splitlines(keepends)

# 按照行('\r', '\r\n', \n')分隔,獲得各行元素的列表
# 若是keepends爲 False,不包含換行符
# 若是爲 True,則保留換行符
# 默認爲False
print('as\nas\tas\nas\ras'.splitlines())
print('as\nas\tas\nas\ras'.splitlines(False))
print('as\nas\tas\nas\ras'.splitlines(True))
['as', 'as\tas', 'as', 'as']
['as', 'as\tas', 'as', 'as']
['as\n', 'as\tas\n', 'as\r', 'as']

 

 

36.  str.replace(old, new, count)

把字符串中的 old(舊字符串) 替換成 new(新字符串)
# 替換不超過count 次,count爲空時不限次數。
print('asdfghasdf'.replace('as','12',1))
12dfghasdf

 

 

37.  str.startswitch(start, end)

# startswith() 方法用於檢查字符串是不是以指定字符串開頭
# 若是是則返回True,不然返回False
# start,end未指定範圍,默認0,len(str)-1
print('asdfg'.startswith('as'))
print('asdfg'.startswith('as',1,4))
True
False

 

 

38.  str.swapcase

# 大寫變小寫,小寫變大寫
print('asdfASDFaAsSASas'.swapcase())
ASDFasdfAaSsasAS
相關文章
相關標籤/搜索