Python數據結構之字符串類型(str)


字符串類型(str)

  • 字符串說明

  • 索引和切片

  • 轉義字符

  • 字符串運算符

  • 字符串格式化

  • 字符串內置的函數

一.字符串說明

  字符串是 Python 中最常用的數據類型。我們可以使用引號('或")來創建字符串。

  字符串是不可變的數據類型,不論執行任何操作,源字符串是不會改變的,每次操作都會返回新字符串;

  創建字符串,只需要為變量賦值即可,如:Str = "hello world"

  字符串在轉換成int時,如果字符串中的數字有空格,則在轉換時自動去除空格;

  訪問字符串中的值:

  Python 不支持單字符類型,單字符在 Python 中也是作為一個字符串使用。

>>> print("hello world")
hello world

  字符串更新:

  可以截取字符串的一部分並與其他字段拼接,如下實例:

>>> print("hello world" + " 你好,中國")
hello world 你好,中國

二、索引和切片

1.索引

  說明:通過索引取出字符串對應的值

  格式:str[下標]

  參數:下標 ------ > 是一個int型數據,

  索引從0開始,使用[下標]可以獲取到每一個字符,還可以倒着數,最后一個字符用-1表示,一次往前數是-1、-2...

  返回值:返回字符串對應索引所對應的值;如果索引超出邊界則報錯

  實例:

>>> s = "abcdefg"
>>> print(s[0])
a
>>> print(s[1])
b
>>> print(s[2])
c
>>> print(s[3])
d
>>> print(s[4])
e
>>> print(s[5])
f
>>> print(s[6])
g

----------------索引超出邊界,報錯---------------------------------

 >>> print(s[7])
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  IndexError: string index out of range

 

 

2.切片

  說明:通過切片取出字符串的一段字符;

  格式:str[起始位置:結束位置:步長]

  參數:起始位置 --------> 表示從哪個下標開始

     結束位置 --------> 表示到哪個下標結束

      步長 --------------> 默認從左到右,步長為1,也可以取反,表示倒敘,步長取負數

  特點:顧頭不顧尾,從start開始截取. 截取到end位置. 但不包括end

  返回值:返回一個由切片選擇好的子串;

  實例:

>>> s = "abcdefg"
>>> print(s[:])
abcdefg
>>> print(s[0:4])
abcd
>>> print(s[2:6])
cdef
>>> print(s[:6:2])
ace
>>> print(s[1::2])
bdf
>>> print(s[::-1])
gfedcba
>>> print(s[-1:-3])

>>> print(s[-1:-3:-1])
gf
>>> print(s[-1::-2])
geca

 

 

 

 

 

 

 

三.轉義字符

  在需要在字符中使用特殊字符時,python用反斜杠(\)轉義字符。如下表:

四.字符串運算符

下表實例變量a值為字符串 "Hello",b變量值為 "Python":

五.字符串格式化

  Python 支持格式化字符串的輸出 。盡管這樣可能會用到非常復雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。

  在 Python 中,字符串格式化使用與 C 中 sprintf 函數一樣的語法。

>>> print("中國的首都是%s" % ("北京"))
中國的首都是北京

  python字符串格式化符號:

  格式化操作符輔助指令:

六.字符串內置的函數

  

 

  1.capitalize(self)

  說明:將字符串的第一個字符轉換為大寫,其他字母變成小寫;注意的是並不會改變原字符串內容;

  語法:str.capitalize()

  返回值:該方法返回一個首字母大寫的字符串;

  實例:

>>> S = "hello WoRld"
>>> print(S.capitalize())
Hello world

 

  2.casefold(self)

  說明:將字符串中的所有大寫字符轉換為小寫字符;並支持識別東歐的一些字母;lower不支持東歐的字母;

  語法:str.casefold()

  返回值:返回將字符串中所有大寫字符轉換為小寫后生成的字符串;

  實例:

>>> S = "hello WoRld"
>>> print(S.casefold())
hello world

 

  3.center(self, width, fillchar=None)

  說明:返回一個指定的寬度width且居中的字符串,字符串長度為width,fillchar為填充的字符,默認為空格;

  語法:str.center(width,fillchar)

  返回值:返回一個指定的寬度 width 居中的字符串,如果 width 小於字符串寬度直接返回字符串,否則使用 fillchar 去填充。

  實例:

>>> print("今日頭條".center(40,"*"))
******************今日頭條******************

 

  4.count(self, sub, start=None, end=None)

  說明:用於統計字符串里某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。

  語法:str.count(sub,start=None, end=None)

  參數:sub  -----> 要搜索的子字符串;

     start -----> 字符串開始搜索的位置。默認為第一個字符,第一個字符索引值為0;

     end ------> 字符串中結束搜索的位置。字符中第一個字符的索引為 0。默認為字符串的最后一個位置;

    返回值:返回子字符串在字符串中出現的次數;

  實例:

>>> print(ss.count("a"))
2
>>> print(ss.count("a",0,8))
1

 

  5.encode(self, encoding='utf-8', errors='strict')

  說明:以指定的編碼格式來編碼字符串。errors參數可以指定不同的錯誤處理方案。

  語法:str.encode(encoding='utf-8', errors='strict')

  參數:encoding -----> 要使用的編碼,如:UTF-8

     errors -----> 設置不同錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個UnicodeError。 其他可能得值有 'ignore', 'replace',              'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊的任何值。

  返回值:返回編碼后的字符串,是一個 bytes 對象

  實例:

>>> abc = "燈火闌珊"
>>> abc_utf8 = abc.encode("UTF-8")
>>> abc_gbk = abc.encode("GBK")
>>> print(abc)
燈火闌珊
>>> print(abc_utf8)
b'\xe7\x81\xaf\xe7\x81\xab\xe9\x98\x91\xe7\x8f\x8a'
>>> print(abc_gbk)
b'\xb5\xc6\xbb\xf0\xc0\xbb\xc9\xba'

 

  6.decode(self, decoding='utf-8', errors='strict')

  說明:以指定的編碼格式來解碼字符串。errors參數可以指定不同的錯誤處理方案。

  語法:bytes.decode(encoding="utf-8", errors="strict")

  參數:encoding -----> 要使用的編碼,如:UTF-8

     errors -----> 設置不同錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個UnicodeError。 其他可能得值有 'ignore', 'replace',                                            'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊的任何值。

  返回值:返回解碼后的字符串;

  實例:

>>> print(abc_gbk.decode("GBK"))
燈火闌珊
>>> print(abc_utf8.decode("UTF-8"))
燈火闌珊

 

  7.endswith(self, suffix, start=None, end=None)

  說明:用於判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回True,否則返回False;

  語法:str.endswith(suffix,start=None, end=None)

  參數:suffix -----> 該參數可以是一個字符串或者是一個元素;

        start ------> 字符串中的開始位置;

        end  ------> 字符中結束位置

  返回值:如果字符串含有指定的后綴返回True,否則返回False;

  實例:

>>> end = "hello world"
>>> print(end.endswith("ld"))
True
>>> print(end.endswith("ld",0,10))
False

 

  8.expandtabs(self, tabsize=8)

  說明:把字符串中的 tab 符號('\t')轉為空格,tab 符號('\t')默認的空格數是 8;

  注意:規則是這樣的,如果設置空格數是8,則會從開頭查詢,每8個字符為一組,到有\t那組時,缺幾個就補幾個空格;

  語法:str.expandtabs(tabsize=8)

  參數:tabszie -----> 指定轉換字符串中的 tab 符號('\t')轉為空格的字符數;

  返回值:返回字符串中的 tab 符號('\t')轉為空格后生成的新字符串;

  實例:

>>> ss = "this is \tstring example"
>>> print(ss)
this is     string example
#
this is 剛好8個,所以到\t這里自動在補8個空格;

>>> print(ss.expandtabs(0))
this is string example 
#0自動沒有

>>> print(ss.expandtabs(20))
this
is string example
#this is \t是8個,設置的是20空格,所以還需在補12個空格

 

  9.find(self, sub, start=None, end=None)

  說明:檢測字符串中是否包含子字符串 sub ,如果指定 start(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,如果指定范圍內如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

  語法:str.find(sub, start=None, end=None)

  參數:sub ------> 指定檢索的字符串;

     start -----> 指定開始索引位置,默認為0

     end  -----> 指定結束索引位置,默認為字符串長度,len(str)

  返回值:如果包含子字符串返回開始的索引值,否則返回-1;

  實例:

>>> str1 = "Life is too short for python"
>>> print(str1.find("short"))
12
>>> print(str1.find("short",5,19))
12
>>> print(str1.find("short",17,19))
-1

 

  10.format(self, *args, **kwargs)

  說明:format函數用於字符串的格式化,通過{}和:來代替%;傳入的參數兩種形式,一種是位置參數,一種是關鍵字參數;位置參數不受順序約束,且可以為{},只要format里有相對應的參數值即可,參數索引從0開,傳入位置參數列表可用*列表,關鍵字參數值要對得上,可用字典當關鍵字參數傳入值,字典前加**即可,注意的是當位置參數和關鍵字參數混合使用時,位置參數一定要在關鍵字參數左邊。

  語法:str.format( *args, **kwargs)

  參數:*args ------> 當傳入的參數為列表時,可用*列表;

     **kwargs -------> 可用字典當關鍵字參數傳入值,字典前加**即可;

  返回值:返回一個已經填充好的字符串。

  例子:

------------------不設置指定位置,按默認順序--------------------------

>>> str2 = "中國的城市有,{},{},{},{}"
>>> print(str2.format("北京","上海","深圳","武安"))
中國的城市有,北京,上海,深圳,武安


----------------設置指定位置-------------------------------------------

>>> str2 = "中國的城市有,{3},{0},{2},{1}"
>>> print(str2.format("北京","上海","深圳","武安"))
中國的城市有,武安,北京,深圳,上海


------------------使用位置-列表形式---------------------------
>>> li = ["北京","上海","深圳","武安"]
>>> print(str2.format(*li))
中國的城市有,北京,上海,深圳,武安

-------------------使用關鍵字位置形式-------------------------
>>> print(str2.format(k2="北京",k3="上海",k1="深圳",k4="武安"}))
中國的城市有,深圳,北京,上海,武安
-------------------使用關鍵字位置字典形式-------------------------
>>> print(str2.format(**{"k2":"北京","k3":"上海","k1":"深圳","k4":"武安"}))
中國的城市有,深圳,北京,上海,武安


-------------------使用混合模式--------------------------------
>>> str2 = "中國的城市有,{3},{0},{2},{1},{h}"
>>> print(str2.format("北京","上海","深圳","武安",**{"h":"石家庄"}))
中國的城市有,武安,北京,深圳,上海,石家庄

  也可以向.format()傳入對象:

class test():
    def __init__(self,asd):
        self.num = asd
ming = test(6)
print("ming的數字是:{0.num}".format(ming))
#{0.num}中的0是可選的表示指定位置

-------------------輸出結果為------------------------------

ming的數字是:6

  .format()的數字格式化:

>>> print("{:.2f}".format(3.1415926))
3.14

  下表展示了 str.format() 格式化數字的多種方法:

>>> print("{}對應的位置是{{0}}".format("zjk"))
zjk對應的位置是{0}

 

  11.format_map(self, mapping)

  說明:類似於format,不同的是format_map只能使用關鍵字位置形式傳入字典來進行;

  語法:str.format_map(mapping)

  參數:mapping -----> 必須是一個字典;

  返回值:一個已經填充好的字符串;

  實例:

>>> print("{name}對應的位置是{{0}}".format_map({"name":"zjk"}))
zjk對應的位置是{0}

 

  12.index(self, sub, start=None, end=None)

  說明:檢測字符串中是否包含子字符串 sub ,如果指定 start(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,該方法與 python find()方法一樣,只不過如果sub不在 str中則會報一個異常,而find則是返回-1;

  語法:str.index(sub,start=None, end=None)

  參數:sub ------> 指定檢索的子字符串;

     start -----> 指定開始索引位置,默認為0;

     end ------> 指定結束索引位置,默認為字符串的長度;

  返回值:如果包含子字符串返回開始的索引值,否則拋出異常;

  實例:

>>> str1 = "Life is too short for python"
>>> print(str1.index("short"))
12
>>> print(str1.index("short",14))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

 

  13.isalnum(self)

  說明:檢測字符串是否由字母和數字組成;

  語法:str.isalnum()

  返回值:如果 string 至少有一個字符並且所有字符都是字母或數字則返回 True,否則返回 False

  實例:

>>> str1 = "helloworld"
>>> print(str1.isalnum())
True
>>> str2 = "hello world"
>>> print(str2.isalnum())
False

 

  14.isalpha(self)

  說明:檢測字符串是否只由字母組成;

  語法:str.isalpha()

  返回值:如果字符串至少有一個字符並且所有字符都是字母則返回 True,否則返回 False;

  實例:

>>> str1 = "python"
>>> print(str1.isalpha())
True
>>> str2 = "python3"
>>> print(str2.isalpha())
False

 

  15.isdecimal(self)

  說明:檢查字符串是否只包含十進制字符。這種方法只存在於unicode對象;注意:定義一個十進制字符串,只需要在字符串前添加 'u' 前綴即可。

  語法:str.isdecimal()

  返回值:如果字符串只包含十進制字符返回True,否則返回False

  實例:

>>> str1 = u"zjk2018"
>>> print(str1.isdecimal())
False
>>> str2 = u"201807"
>>> print(str2.isdecimal())
True

 

  16.isdigit(self)

  說明:檢測字符串是否只由數字組成;

  語法:str.isdigit()

  返回值:如果字符串只包含數字則返回 True 否則返回 False;

  實例:

>>> str1 = "zjk2018"
>>> print(str1.isdigit())
False
>>> str2 = "201807"
>>> print(str2.isdigit())
True

 

  17.isidentifier(self)

  說明:判斷是否為python中的標識符,也就是說是否符合python變量名語法;

  語法:str.isidentifier()

  返回值:如果字符串的內容符合python變量命名語法,則返回True,否則返回False;

  實例:

>>> str1 = "zjk1"
True
>>> str2 = "666zjk"
>>> str2.isidentifier()
False
>>> str3 = "變量名"
>>> str3.isidentifier()
True
>>> str4 = "def"
>>> str4.isidentifier()
True
#python的關鍵字一樣是合法的
>>> str5 = "88888" >>> str5.isidentifier() False

 

  18.islower(self)

  說明:檢測字符串是否由小寫字母組成;

  語法:str.islower()

  返回值:如果字符串中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False;

  實例:

>>> str1 = "Life is too short for python -zjk23"
>>> print(str1.islower())
False
>>> str2 = "life is too short for python -zjk23"
>>> print(str2.islower())
True

 

  19.isnumeric(self)

  說明:檢測字符串是否只由數字組成。這種方法是只針對unicode對象;注:定義一個字符串為Unicode,只需要在字符串前添加 'u' 前綴即可;

  語法:str.isnumeric()

  返回值:如果字符串中只包含數字字符,則返回 True,否則返回 False

  實例:

>>> str1 = "zjk1995"
>>> print(str1.isnumeric())
False
>>> str2 = "1995"
>>> print(str2.isnumeric())
True

 

  20.isprintable(self)

  說明:判斷是否由可打印字符組成,回車符等一些特殊字符是不會打印顯示在屏幕上的;

  語法:str.isprintable()

  返回值:如果字符串中所有內容都可打印則返回True,否則返回False;

  實例:

>>> print("123\t4\t56".isprintable())
False
>>> print("123\\t456".isprintable())
True

 

  21.isspace(self)

  說明:檢測字符串是否只由空白字符組成;

  語法:str.isspace()

  返回值:如果字符串中只包含空格,則返回 True,否則返回 False;

  實例:

>>> str1 = "    "
>>> print(str1.isspace())
True
>>> str2 = " sdf sdf"
>>> print(str2.isspace())
False

 

  22.istitle(self)

  說明:檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫;

  語法:str.istitle()

  返回值:如果字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫則返回 True,否則返回 False;

  實例:

>>> str1 = "Life Is Too Short For Python"
>>> print(str1.istitle())
True
>>> str2 = "Life is Too short For PyThon"
>>> print(str2.istitle())
False

 

  23.isupper(self)

  說明:檢測字符串中所有的字母是否都為大寫;

  語法:str.isupper()

  返回值:如果字符串中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False;

  實例:

>>> str1 = "LIFE IS TOO SHORT FOR PYTHON"
>>> print(str1.isupper())
True
>>> str2 = "LIFE Is TOO ShOrT FOR PYTHON"
>>> print(str2.isupper())
False

 

  24.join(self, iterable)

  說明:用於將序列中的元素以指定的字符連接生成一個新的字符串;

  語法:n.join(iterable)

  參數:iterable ------> 要連接的元素序列;

     n --------------> 指定用來連接的字符;

  返回值:返回通過指定字符連接序列中元素后生成的新字符串;

  實例:

>>> str1 = "zjk"
>>> print("-".join(str1))
z-j-k

 

  25.ljust(self, width, fillchar=None)

  說明:返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串。如果指定的長度小於原字符串的長度則返回原字符串;

  語法:str.ljust(width, fillchar=None)

  參數:width ------> 指定字符串長度;

     fillchar -----> 填充字符,默認為空格;

  返回值:返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串。如果指定的長度小於原字符串的長度則返回原字符串;

  實例:

>>> str1 = "I Love You"
>>> print(str1.ljust(20,"*"))
I Love You**********

------------當指定的填充長度小於原字符串長度時返回原字符串-------

>>> str2 = "I Love You"
>>> print(str1.ljust(10,"*"))
I Love You

 

  26.lower(self)

  說明:轉換字符串中所有大寫字符為小寫;

  語法:str.lower()

  返回值:返回將字符串中所有大寫字符轉換為小寫后生成的字符串;

  實例:

>>> str1 = "I Love You"
>>> print(str1.lower())
i love you

 

  27.lstrip(self, chars=None)

  說明:用於截掉字符串左邊的空格或指定字符,貪婪模式;

  語法:str.lstrip( chars=None)

  參數:chars ------> 指定截取的字符;

  返回值:返回截掉字符串左邊的空格或指定字符后生成的新字符串;

  實例:

>>> str1 = "666666I66Love You"
>>> print(str1.lstrip("6"))
I66Love You

 

  28.maketrans(self, *args, **kwargs)

  說明:用於創建字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。兩個字符串的長度必須相同,為一一對應的關系;

  語法:str.maketrans(intab,outtab)

  參數:intab -------> 需要轉換的字符串;

     outtab -----> 被轉換的字符串;

  返回值:返回的是一個字典,字典內容是字符串的ASCII碼的序號,一一對應

  實例:

>>> dat = str.maketrans("123","abc")
>>> print(dat)
{49: 97, 50: 98, 51: 99}

-----------------解釋--------------------------
1 的ASCII碼為 49
a 的ASCII碼為 97

 

  29.partition(self, sep)

  說明:返回一個由三個元素組成的元祖,第一個元素為分隔符左側的子串,第二個元素為分隔符,第三個元素為分隔符右側的子串;

  語法:str.partition(sep)

  參數:sep ------> 指定分隔符

  返回值:返回一個由三個元素組成的元祖,第一個元素為分隔符左側的子串,第二個元素為分隔符,第三個元素為分隔符右側的子串;

  實例:

>>> str1 = "http://www.dhlanshan.cn"
>>> print(str1.partition("//"))
('http:', '//', 'www.dhlanshan.cn')

-----------如果指定的分隔符在字符串中有兩個,則以最左側為分隔符----------

>>> print(str1.partition("."))
('http://www', '.', 'dhlanshan.cn')

 

  30.replace(self, old, new, count=None)

  說明:將字符串中的某子串進行替換,默認替換指定的所有子串;

  語法:str.replace(old, new, count=None)

  參數:old ------> 舊的子串;

     new -----> 新的子串;

     count ----> 替換的次數;

  返回值:返回一個子串替換好之后的新的字符串;

  實例:

------------------替換所有子串----------------------------

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.replace("a","A"))
http://video.dhlAnshAn.cn

-----------------從左到右只替換1次子串------------------

>>> print(str1.replace("a","A",1))
http://video.dhlAnshan.cn

 

  31.rfind(self, sub, start=None, end=None)

  說明:返回指定的子串在字符串中最后一次出現的位置,如果沒有匹配項則返回-1;也可以說是從右邊開始找這個指定的子串;

  語法:str.rfind(sub, start=None, end=None)

  參數:sub ------> 指定的子串;

     start ------> 開始查找的位置,默認為0;

     end  ------> 結束查找位置,默認為字符串的長度;

  返回值:返回字符串最后一次出現的位置,如果沒有匹配項則返回-1

  實例:

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.rfind("an"))
20
>>> print(str1.rfind("an",21))
-1

 

  32.rindex(self, sub, start=None, end=None)

  說明:返回子字符串 str 在字符串中最后出現的位置,如果沒有匹配的字符串會報異常,和rfind類似,只不過rfind找不到會返回-1;也可以說是從右邊開始找這個指定的子串;

  語法:str.rindex(sub, start=None, end=None)

  參數:sub ------> 指定的子串;

     start ------> 開始查找的位置,默認為0;

     end  ------> 結束查找位置,默認為字符串的長度;

  返回值:返回子字符串 str 在字符串中最后出現的位置,如果沒有匹配的字符串會報異常;

  實例:

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.rindex("an"))
20

---------------找不到則報錯--------------------------
>>> print(str1.rindex("an",21))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

  

  33.rjust(self, width, fillchar=None)

  說明:返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串。如果指定的長度小於字符串的長度則返回原字符串。

  語法:str.rjust(width, fillchar=None)

  參數:width ------> 指定填充指定字符后中字符串的總長度;

     fillchar -----> 填充的字符,默認為空格;

  返回值:返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串。如果指定的長度小於字符串的長度則返回原字符串;

  實例:

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.rjust(30,"-"))
-----http://video.dhlanshan.cn

 

  34.rpartition(self, sep)

  說明:返回一個由三個元素組成的元祖,第一個元素為分隔符左側的子串,第二個元素為分隔符,第三個元素為分隔符右側的子串,分隔符從字符串的右邊開始查找。

  語法:str.rpartition(sep)

  參數:sep ----->指定分隔符;

  返回值:返回一個由三個元素組成的元祖,第一個元素為分隔符左側的子串,第二個元素為分隔符,第三個元素為分隔符右側的子串;

  實例:

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.rpartition("."))
('http://video.dhlanshan', '.', 'cn')

 

  35.rsplit(self, sep=None, maxsplit=-1)

  說明:分隔字符串,從右側開始分隔,返回一個將字符串以指定分隔符分隔的列表,從右邊開始查找分隔符,默認空格為分隔符;注意,最后列表里是不存在指定的那個分隔符的;

  語法:str.rsplit(sep=None, maxsplit=-1)

  參數:sep ------> 指定分隔符;

     maxsplit ------> 最多分隔的次數,-1表示全部分隔;

  返回值:返回一個將字符串以指定分隔符分隔的列表;

  實例:

--------------------分隔所有--------------------------------------
>>> str1 = "1 2 3 4 5"
>>> print(str1.rsplit(" ",maxsplit=-1))
['1', '2', '3', '4', '5']

-------------------分隔2次---------------------------------------
>>> print(str1.rsplit(" ",maxsplit=2))
['1 2 3', '4', '5']

--------------------列表中會刪除指定的分隔符-----------------
>>> print(str1.rsplit("3",maxsplit=1))
['1 2 ', ' 4 5']

 

  36.rstrip(self, chars=None)

  說明:刪除 string 字符串最右邊的指定字符(默認為空格);貪婪模式;

  語法:str.rstrip(chars=None)

  參數:chars ------> 指定的子符;

  返回值:返回刪除 string 字符串最右邊的指定字符后生成的新字符串;

  實例:

>>> str1 = "**********今日說法**************"
>>> print(str1.rstrip("*"))
**********今日說法

 

  37.split(self, sep=None, maxsplit=-1)

  說明:分隔字符串,從左側開始分隔,返回一個將字符串以指定分隔符分隔的列表,從左邊開始查找分隔符,默認空格為分隔符;注意,最后列表里是不存在指定的那個分隔符的;

  語法:str.rsplit(sep=None, maxsplit=-1)

  參數:sep ------> 指定分隔符;

     maxsplit ------> 最多分隔的次數,-1表示全部分隔;

  返回值:返回一個將字符串以指定分隔符分隔的列表;

  實例:

--------------------分隔所有--------------------------------------
>>> str1 = "1 2 3 4 5"
>>> print(str1.split(" ",maxsplit=-1))
['1', '2', '3', '4', '5']

-------------------當分隔符為整個字符串時則返回一個有兩個空字符串的元素的列表----------------------
>>> str1 = "1 2 3 4 5"
>>> print(str1.split("1 2 3 4 5",maxsplit=-1))
['', '']
-------------------分隔2次---------------------------------------
>>> print(str1.split(" ",maxsplit=2)) ['1','2','3 4 5'] --------------------列表中會刪除指定的分隔符-----------------
>>> print(str1.split("3",maxsplit=1)) ['1 2 ', ' 4 5']

 

  38.splitlines(self, keepends=None)

  說明:按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。

  語法:str.splitlines(keepends=None)

  參數:keepends -- 在輸出結果里是否去掉換行符('\r', '\r\n', \n'),默認為 False,不包含換行符,如果為 True,則保留換行符

  返回值:返回一個包含各行作為元素的列表。

  實例:

>>> print("abc\n\ndefg\rkl\r\n".splitlines())
['abc', '', 'defg', 'kl']
>>> print("abc\n\ndefg\rkl\r\n".splitlines(True))
['abc\n', '\n', 'defg\r', 'kl\r\n']

 

  39.startswith(self, prefix, start=None, end=None)

  說明:用於檢查字符串是否是以指定子字符串開頭,如果是則返回 True,否則返回 False。如果參數 start 和 end 指定值,則在指定范圍內檢查。

  語法:str.startswith(prefix, start=None, end=None)

  參數:prefix ------> 指定的子串;

     start  -------> 索引開始處;

     end  --------> 索引結尾處;

  返回值:如果檢測到字符串則返回True,否則返回False;

  實例:

>>> str1 = "http://video.dhlanshan.cn"
>>> print(str1.startswith("http"))
True
>>> print(str1.startswith("video",7))
True
>>> print(str1.startswith(":",6,9))
False

 

  40.strip(self, chars=None)

  說明:用於移除字符串頭尾指定的字符(默認為空格)或字符序列。注意:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。

  語法:str.strip(chars)

  參數:chars -------> 移除字符串頭尾指定的字符序列;

  返回值:返回移除字符串頭尾指定的字符序列生成的新字符串;

  實例:

>>> str1 = "**********今*日*說*法**************"
>>> print(str1.strip("*"))
今*日*說*法

  無敵匹配法:

  先看效果:

>>> str1 = "12345654321"
>>> print(str1.strip("12"))
3456543
>>> str1 = "12345654312"
>>> print(str1.strip("12"))
3456543
>>> str1 = "12345654321"
>>> print(str1.strip("125"))
3456543
>>> str1 = "1234565431221"
>>> print(str1.strip("12"))
3456543
>>> str1 = "1234565432121"
>>> print(str1.strip("12"))
3456543
 ----------------------------------------說明--------------------------------
#其實“12”是分為了3個匹配符,分別是"1" "2" "12",這三個匹配符會循環去匹配字符串,直到這三個匹配符一個也匹配不上為止。

 

  41.swapcase(self)

  說明:用於對字符串的大小寫字母進行轉換,小寫變大寫,大寫變小寫;

  語法:str.swaocase()

  返回值:返回大小寫字母轉換后生成的新字符串;

  實例:

>>> str1 = "I Love You"
>>> print(str1.swapcase())
i lOVE yOU

 

  42.title(self)

  說明:返回"標題化"的字符串,就是說所有單詞的首個字母轉化為大寫,其余字母均為小寫;注意,默認是按空格來分單詞,也可以是其他特殊字符或數字。

  語法:str.title()

  返回值:返回"標題化"的字符串,就是說所有單詞的首字母都轉化為大寫。

  實例:

>>> str1 = "Life is too short for python"
>>> print(str1.title())
Life Is Too Short For Python

   使用特殊字符或數字來區分:

>>> str1 = "zjk zjk*zjk&zjk^zjk@,zjk.zjk9zjk8zjk/zjk"
>>> print(str1.title())
Zjk Zjk*Zjk&Zjk^Zjk@,Zjk.Zjk9Zjk8Zjk/Zjk

 

  43.translate(self, table)

  說明:根據由maketrans函數生成的對照表table完成字符替換;

  語法:str.tarnslate(table)

  參數:table ---- 對照表,是由maketrans函數生成;

  返回值:返回翻譯后的字符串;

  實例:

>>> table = str.maketrans("zjk","666")
>>> str = "zjkqwert"
>>> print(str.translate(table))
666qwert

 

  44.upper(self)

  說明:將字符串中的小寫字母轉為大寫字母;

  語法:str.upper()

  返回值:返回小寫字母轉為大寫字母的字符串;

  實例:

>>> str1 = "Life is too short for python"
>>> print(str1.upper())
LIFE IS TOO SHORT FOR PYTHON

 

  45.zfill(self, width)

  說明:返回指定長度的字符串,原字符串右對齊,前面填充0,若指定長度小於原字符串長度,則返回原字符串;

  語法:str.zfill(width)

  參數:width -------> 指定字符串的長度。原字符串右對齊,前面填充0;

  返回值:返回指定長度的字符串;

  實例:

>>> str = "zjkqwert"
>>> print(str.zfill(10))
00zjkqwert
>>> print(str.zfill(6))
zjkqwert

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM