欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python學(xué)習(xí)之字符串常用方法總結(jié)

 更新時(shí)間:2022年03月04日 16:18:53   作者:渴望力量的哈士奇  
這篇文章主要為大家介紹了Python中字符串的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python字符串有一定幫助,需要的可以參考一下

接下來(lái)我們會(huì)進(jìn)入 字符串常用方法的應(yīng)用階段,重點(diǎn)學(xué)習(xí)字符串的內(nèi)置函數(shù)。正式學(xué)習(xí)之前,我們要先了解一個(gè)詞 對(duì)象 (劃重點(diǎn),不是男女朋友!),只有知道 對(duì)象是什么?才能更好的幫助我們接下來(lái)的學(xué)習(xí)。

什么是對(duì)象

對(duì)于 Python 來(lái)說(shuō),對(duì)象的概念,更像是身份的概念,我們可以理解為 每一個(gè) 變量 其實(shí)就是 對(duì)象。

  • Python 中一切皆是對(duì)象
  • 每個(gè)對(duì)象都有自己的屬性和方法
  • 對(duì)象的特點(diǎn)就是它的屬性,它的功能就是它的方法,也可以說(shuō)是函數(shù)。比如字符串就有很多內(nèi)置函數(shù)來(lái)幫助我們處理字符串。

Python 萬(wàn)物皆是對(duì)象

Python里面有一句話:萬(wàn)物解釋對(duì)象

在編程領(lǐng)域中,通常把現(xiàn)實(shí)世界中的實(shí)體稱為對(duì)象,例如:

  • 香蕉、蘋(píng)果、橘子
  • 男人、女人、小孩
  • 飛機(jī)、地鐵、突突車(chē)
  • 平房、樓房、小別墅

對(duì)象指的是一個(gè)具體的實(shí)體,不用于指代一個(gè)抽象的群體(或者也可以說(shuō)是一個(gè)實(shí)體所處的群體)

  • 香蕉是一個(gè)具體的水果,所以可以說(shuō)香蕉是一個(gè)對(duì)象
  • 它是一種水果,但水果是一個(gè)抽象的概念,指的是一群可食用的含水分和糖分較多的植物果實(shí)
  • 你可以說(shuō),香蕉、蘋(píng)果、橘子是水果,但是不能說(shuō)水果就只能是香蕉、只能是蘋(píng)果、只能是橘子…
  • 所以不能說(shuō)水果是一個(gè)對(duì)象

類(lèi)似的,飛機(jī)、地鐵這些具體的交通工具可以被稱為對(duì)象,但是不能說(shuō)交通工具是一個(gè)對(duì)象

字符串的索引

學(xué)習(xí)字符串的常用方法之前,我們?cè)賮?lái)吻戲一下字符串的索引

索引[]

通過(guò)索引 [] 獲取字符串中指定位置的字符,示例如下:

>>> s = 'Python'
>>> s[0]
'P'
>>> s[1]
'y'
>>> s[2]
't'
>>> s[3]
'h'
>>> s[4]
'0'
>>> s[5]
'n'
  • 在 Python 中,單個(gè)字符也被當(dāng)作字符串來(lái)處理,即該字符串只包含一個(gè)字符
  • 在第 2 行,獲取字符串 s 的第 0 個(gè)字符 ‘P’
  • 在第 4 行,獲取字符串 s 的第 1 個(gè)字符 ‘y’
  • 在第 6 行,獲取字符串 s 的第 1 個(gè)字符 ‘t’
  • 在第 8 行,獲取字符串 s 的第 1 個(gè)字符 ‘h’
  • 在第 10 行,獲取字符串 s 的第 1 個(gè)字符 ‘o’
  • 在第 12 行,獲取字符串 s 的第 1 個(gè)字符 ‘n’

索引[:]

在 Python 中,使用語(yǔ)法 string [start:end],獲取字符串 string 中在 [start, end) 范圍的子字符串。

注意范圍 [start, end) 包含 start,不包含 end。也可以理解為是列表的 左閉右開(kāi)原則 。

舉例如下:

>>> s = 'Python'
>>> s[1]
'y'
>>> s[2]
't'
>>> s[3]
'h'
>>> s[0:5]
'Pytho'
  • 在第 2 行,獲取字符串 s 的第 1 個(gè)字符 ‘m’
  • 在第 4 行,獲取字符串 s 的第 2 個(gè)字符 ‘o’
  • 在第 6 行,獲取字符串 s 的第 3 個(gè)字符 ‘o’
  • 在第 8 行,獲取字符串 s 中從 1 開(kāi)始、到 4 結(jié)束的字符串 ‘mooc’,使用 s [1:4] 表示該范圍,注意該范圍包括字符串的第 1 個(gè)字符、不包括第 4 個(gè)字符。

字符串的常用方法

find()函數(shù) 與 index()函數(shù)

find() 函數(shù)與 index() 函數(shù)的功能:都是返回你想找的成員(元素)的位置

find() 函數(shù)的用法:str = string.finde(item) item:想要查詢匹配的元素,返回一個(gè)整型

index() 函數(shù)的用法:str = string.index(item) item:想要查詢匹配的元素,返回一個(gè)整型或者報(bào)錯(cuò)

附:字符串里的位置是從左向右從下標(biāo)位[0]開(kāi)始計(jì)算

find() 函數(shù)與 index() 函數(shù)的區(qū)別:

  • 如果 find() 函數(shù) 找不到c成員(元素),會(huì)返回 -1
  • 如果 index()函數(shù) 找不到成員(元素),會(huì)導(dǎo)致程序報(bào)錯(cuò)
info = "Python is good code"

print(info.find("P"))
print(info.find("good"))
print(info.find("Java"))

# >>> 0
# >>> 10
# >>> -1
info = "Python is good code"

print(info.index("P"))
print(info.index("good"))
print(info.index("Java"))	# 直接報(bào)錯(cuò)(語(yǔ)法錯(cuò)誤) 'ValueError: substring not found'

# >>> 0
# >>> 10

startswith() 函數(shù)與 endswith() 函數(shù)

startswith() 函數(shù)的功能:判斷字符串 開(kāi)始位 是否是某成員(元素),可以指定統(tǒng)計(jì)的范圍,[start,end) 左閉區(qū)間右開(kāi)區(qū)間

startswith() 函數(shù)的用法:str = string.startswith(item) item:想要查詢匹配的元素,返回一個(gè)布爾值

endswith() 函數(shù)的功能:判斷字符串 結(jié)尾 是否是某成員(元素),可以指定統(tǒng)計(jì)的范圍,[start,end) 左閉區(qū)間右開(kāi)區(qū)間

startswith() 函數(shù)的用法:str = string.endswith(item) item:想要查詢匹配的元素,返回一個(gè)布爾值

示例如下:

info = 'Python is good'

print(info.startswith('Python'))
print(info.startswith('Java'))
print(info.endswith('good'))
print(info.endswith('bad'))

# >>> True
# >>> False
# >>> True
# >>> False

string_test = "this is string example"
print(string_test.startswith('this'))           # 字符串是否以 this 開(kāi)頭
print(string_test.startswith('string', 8))      # 從第九個(gè)字符開(kāi)始的字符串是否以 string 開(kāi)頭
print(string_test.startswith('this', 2, 4))     # 從第2個(gè)字符開(kāi)始到第四個(gè)字符結(jié)束的字符串是否以 this 開(kāi)頭

# >>> True
# >>> True
# >>> False

capitalize () 函數(shù)

capitalize 的功能 : 將字符串的首字母大寫(xiě)

capitalize 的用法:str = string.capitalize() ;

示例如下:

>>> str = 'string'
>>> str.capitalize()
'String'

capitalize() 的注意事項(xiàng):

  • 只對(duì)首字母有效
  • 只對(duì)字母有效
  • 已經(jīng)是大寫(xiě),則無(wú)效

capitalize()函數(shù)小練習(xí)

將han meimei轉(zhuǎn)換成規(guī)范的英文名字,打印實(shí)現(xiàn)姓、名首字母都是大寫(xiě)

name_1="han"
name_2="meimei"

print(name_1.capitalize() + ' ' +name_2.capitalize())
# >>> 輸出結(jié)果 'Han Meimei'

casefold()函數(shù)與lower()函數(shù)

casefold()函數(shù)與lower()函數(shù) 的功能 : 將字符串的全體字符小寫(xiě)

casefold()函數(shù)與lower()函數(shù) 的用法:str = string.casefold() , str = string.lower() ;

示例如下:

>>> str_01 = 'Hello'
>>> str_01.casefold()
'hello'

>>> str_02 = 'World'
>>> str_02.lower()
'world'

casefold()函數(shù)與lower()函數(shù) 的注意事項(xiàng):

  • 只對(duì)字符串的字母有效
  • 已經(jīng)是小寫(xiě)的字母無(wú)效
chinese = "你好,世界"
english = "Hello,World"
test_str = "test@1.com$OK"

print(chinese.casefold())
print(chinese.lower())
print(english.casefold())
print(english.lower())
print(test_str.casefold())
print(test_str.lower())

既然 casefold()函數(shù)與lower()函數(shù) 都可以將字符串的全體字符轉(zhuǎn)為小寫(xiě),那么又有什么區(qū)別呢?

其實(shí)還是有區(qū)別的,lower()函數(shù)是很早之前就存在的將字符串小寫(xiě)的方法,而casefold()函數(shù)則是 Python3.3版本之后才引入的小寫(xiě)方法。lower()函數(shù)是將英文字符進(jìn)行小寫(xiě),但是對(duì)德語(yǔ)等其他非英語(yǔ)字符就失去了效果,這個(gè)時(shí)候就是 casefold() 函數(shù)大顯身手的時(shí)候了。

casefold()函數(shù)與lower()函數(shù) 小練習(xí)

將下列三個(gè)驗(yàn)證碼全部轉(zhuǎn)為 小寫(xiě)

str_1 = “NAh8”

str_2 = “Sn6H”

str_3 = “HKFM”

str_1 = "NAh8"
str_2 = "Sn6H"
str_3 = "HKFM"

print (str_1.lower())
print (str_2.casefold())
print (str_3.lower())

upper() 函數(shù)

upper() 函數(shù)的功能:將字符串全體大寫(xiě)

upper() 函數(shù)的用法:str = string.upper()

示例如下:

>>> str = 'string'
>>> str.upper()
'STRING'

capitalize 的注意事項(xiàng):

  • 只對(duì)字符串的字母有效
  • 已經(jīng)是大寫(xiě)的字母無(wú)效
str_test = 'Hello World'
print(str_test.upper())
# >>> 'HELLO WORLD'

swapcase() 函數(shù)

swapcase() 函數(shù)的功能:將字符串中的字符進(jìn)行大小寫(xiě)轉(zhuǎn)換

swapcase() 函數(shù)的用法:str = string.swapcase()

swapcase() 函數(shù)的注意事項(xiàng):只對(duì)字符串的字母有效

info_one = 'Python is good'
info_two = 'pthon web is so esay'

print(info_one.swapcase())
print(info_two.swapcase())

zfill() 函數(shù)

zfill() 函數(shù)的功能:為字符串定義長(zhǎng)度,如果現(xiàn)有字符串長(zhǎng)度不滿足,缺少的部分自動(dòng)用 0 補(bǔ)齊

zfill() 函數(shù)的用法:str = string.zfill(width) width:新字符串希望的長(zhǎng)度

zfill() 函數(shù)的注意事項(xiàng):與字符串的字符沒(méi)有關(guān)系;如果定義的字符串長(zhǎng)度小于當(dāng)前字符串長(zhǎng)度,則不會(huì)發(fā)生變化。

info = "Hello World"

print(info.zfill(10))
print(info.zfill(15))
print(info.zfill(20))

count() 函數(shù)

count() 函數(shù)的功能:統(tǒng)計(jì)字符串出現(xiàn)的次數(shù);或者說(shuō)返回當(dāng)前字符串某個(gè)成員(元素)出現(xiàn)的次數(shù)

count() 函數(shù)的用法:str = string.zfill(item) item:查詢個(gè)數(shù)/次數(shù)的元素

count() 函數(shù)的注意事項(xiàng):如果查詢的成員(元素)不存在,則返回 0

info = '''
        Please send this message to those people who mean something to you,to those who have touched your life in 	
        one way or another,to those who make you smile when you really need it,to those that make you see the 
        brighter side of things when you are really down,to those who you want to let them know that you appreciate 
        their friendship. And if you don't, don't worry,nothing bad will happen to you,you will just miss out on the 
        opportunity to brighten someone's day with this message.

        '''
this_count = info.count('this')
you_count = info.count('you')
love_count = info.count('love')

print('"this"出現(xiàn)的次數(shù)為: ' + str(this_count) + '次')
# >>> "this"出現(xiàn)的次數(shù)為: 2次
print('"you"出現(xiàn)的次數(shù)為: ' + str(you_count) + '次')
# >>> "you"出現(xiàn)的次數(shù)為: 11次
print('"love"出現(xiàn)的次數(shù)為: ' + str(love_count) + '次')
# >>> "maybe"出現(xiàn)的次數(shù)為: 0次

strip()函數(shù)

strip() 函數(shù)的功能 :去掉字符串兩邊的指定元素,默認(rèn)是空格

strip() 函數(shù)的用法 :str = string.strip(item) ,括弧里傳一個(gè)想要去掉的成員(元素),可以不填寫(xiě)

strip() 函數(shù)的拓展 :

  • 傳入的元素如果不在開(kāi)頭或者結(jié)尾則無(wú)效
  • lstrip 僅去掉字符串開(kāi)頭的指定元素或者是空格
  • rstrip 僅去掉字符串結(jié)尾的指定元素或者是空格

示例如下:

info = '    Jack is a good boy    '
new_info_01 = info.strip()

print(new_info_01)

# >>> Jack is a good boy

new_info_02 = info.strip(info)
print(new_info_02)
print(len(new_info_02))

# >>>          實(shí)際上這里的 'new_info_02' 已經(jīng)北清空了
# >>> 0        清空后的 'new_info_02' 長(zhǎng)度為0

text = 'abcde'
text_lstrip = text.lstrip('a')
print(text_lstrip)

# >>> bcde

text_rstrip = text.rstrip('e')
print(text_rstrip)

# >>> abcd

replace()函數(shù)

replace()函數(shù)的功能:把字符串中的 old(舊字符串) 替換成 new(新字符串),并可以指定數(shù)量,默認(rèn) -1 代表替換全部

replace()函數(shù)的用法:str = string.replace(old, new, max)

  • old :被替換的元素
  • new:替換 old 的元素
  • max:可選,代表替換幾個(gè),默認(rèn)替換掉全部匹配到的 old 。

示例如下:

info = "hello, Neo"

print(info.replace("Neo", "Jack"))
print(info.replace(" ", "*", 1))
# >>> hello, Jack
# >>> hello,*Neo

info_test = "hello world !!!"
new_info_01 = info_test.replace("h", "H")
new_info_02 = new_info_01.replace("w", "W")

print(new_info_02.replace('!!!', 'Python'))
# >>> Hello World Python

join() 函數(shù)

join()函數(shù)的功能:將序列中的元素以指定的字符連接生成一個(gè)新的字符串

join()函數(shù)的用法:str = "".join(lists)

示例如下:

lists = ["a", "b", "c"]
tuples = ("1", "2", "3")

print("*".join(lists))?? ??? ?# >>> a*b*c
print("@".join(tuples))?? ??? ?# >>> 1@2@3

知識(shí)點(diǎn)

“”.join(lists) 是常見(jiàn)的將列表、元組轉(zhuǎn)成字符串的寫(xiě)法

列表里面只能存放字符串元素,有其他類(lèi)型的元素會(huì)報(bào)錯(cuò) TypeError: sequence item 0: expected str instance, int found

元組也能傳進(jìn)去

split() 函數(shù)

split()函數(shù)的功能:將字符串按照str分割成列表,如果參數(shù) num 有指定值,則分隔 num+1 個(gè)子字符串

split()函數(shù)的用法:str = string.split() ,括號(hào)內(nèi)可以指定分隔符

使用空格將字符串分割為多個(gè)單詞,返回一個(gè)列表,示例如下:

info = 'Hello World Python Is Good'

print(info.split(" "))			# >>> ['Hello', 'World', 'Python', 'Is', 'Good']
print(info.split(" ", 1))		# >>> ['Hello', 'World Python Is Good']

缺省情況下,使用空格將字符串分割為多個(gè)單詞,可以在 split () 方法中指定分隔符,示例如下:

info = 'Hello World:Python Is_Good'

print(info.split(":"))		# >>> ['Hello World', 'Python Is_Good']

字符串中返回 bool 類(lèi)型的函數(shù)集合

之所以說(shuō)它是集合,是因?yàn)槲覀冇卸鄠€(gè)函數(shù)返回的是 bool 類(lèi)型,接下來(lái)我們看看都有哪些函數(shù)返回的是 bool 類(lèi)型。

isspace() 函數(shù)

isspace() 函數(shù)的功能:判斷字符串是否是一個(gè)由空格組成的字符串

isspace() 函數(shù)的用法:isspace_bool_type = string.isspace() ,無(wú)參數(shù)可傳,返回一個(gè) bool 類(lèi)型

示例如下:

string = ' '
print(string.isspace())
# >>> True

new_string = 'hello world'
print(new_string.isspace())
# >>> False		雖然 'hello world' 中有一個(gè)空格,但是除了空格之外,還有其他字符,所以返回 False

附:這里需要注意一點(diǎn),由空格組成的字符串不等于空字符串,因?yàn)榭崭褚舱加靡粋€(gè)長(zhǎng)度。

istitle() 函數(shù)

istitle()函數(shù)的功能:判斷字符串是否是一個(gè)標(biāo)題類(lèi)型 (即多個(gè)單詞,首字母都是大寫(xiě))

istitle()函數(shù)的用法:istitle_bool_type = string.istitle() ,無(wú)參數(shù)可傳,返回一個(gè) bool 類(lèi)型

示例如下:

info_01 = 'Hello Jack'
info_02 = 'hello jack'

print(info_01.istitle())?? ?# >>> True
print(info_02.istitle())?? ?# >>> False

附:需要注意的是該函數(shù)只能對(duì)英文有效

isupper() 函數(shù) 與 islower() 函數(shù)

功能:

  • isupper() 函數(shù) 判斷字符串中的字符是否都是大寫(xiě)
  • islower() 函數(shù) 判斷字符串中的字符是否都是小寫(xiě)

用法:

  • isupper_bool_type = string.isupper() ,無(wú)參數(shù)可傳,返回一個(gè) bool 類(lèi)型
  • islower_bool_type = islower(),無(wú)參數(shù)可傳,返回一個(gè) bool 類(lèi)型

示例如下:

text_01 = 'GOOD BYE'

print(text_01.isupper())?? ?# >>> True
print(text_01.islower())?? ?# >>> False

以上就是Python學(xué)習(xí)之字符串常用方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python 標(biāo)準(zhǔn)庫(kù)原理與用法詳解之os.path篇

    python 標(biāo)準(zhǔn)庫(kù)原理與用法詳解之os.path篇

    os.path模塊主要用于文件的屬性獲取,在編程中經(jīng)常用到,本文將帶你熟悉這個(gè)模塊并掌握它的用法,感興趣的朋友跟小編來(lái)看看吧
    2021-10-10
  • python自動(dòng)化測(cè)試之setUp與tearDown實(shí)例

    python自動(dòng)化測(cè)試之setUp與tearDown實(shí)例

    這篇文章主要介紹了python自動(dòng)化測(cè)試之setUp與tearDown實(shí)例,其中setUp()方法中進(jìn)行測(cè)試前的初始化工作,并在tearDown()方法中執(zhí)行測(cè)試后的清除工作,setUp()和tearDown()都是TestCase類(lèi)中定義的方法,需要的朋友可以參考下
    2014-09-09
  • Python迭代器和生成器定義與用法示例

    Python迭代器和生成器定義與用法示例

    這篇文章主要介紹了Python迭代器和生成器定義與用法,結(jié)合實(shí)例形式詳細(xì)分析了Python迭代器和生成器的概念、原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-02-02
  • Python實(shí)現(xiàn)調(diào)用攝像頭拍攝照片

    Python實(shí)現(xiàn)調(diào)用攝像頭拍攝照片

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)調(diào)用攝像頭拍攝照片以及郵箱收集功能,文中的示例代碼講解詳細(xì),感興趣的可以動(dòng)手嘗試一下
    2022-06-06
  • Python簡(jiǎn)單實(shí)現(xiàn)控制電腦的方法

    Python簡(jiǎn)單實(shí)現(xiàn)控制電腦的方法

    這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)控制電腦的方法,涉及Python基于os及win32api等模塊調(diào)用系統(tǒng)命令操作電腦的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • 基于Python?OpenCV和?dlib實(shí)現(xiàn)眨眼檢測(cè)

    基于Python?OpenCV和?dlib實(shí)現(xiàn)眨眼檢測(cè)

    這篇文章主要介紹了基于Python?OPenCV及dlib實(shí)現(xiàn)檢測(cè)視頻流中的眨眼次數(shù)。文中的代碼對(duì)我們的學(xué)習(xí)和工作有一定價(jià)值,感興趣的同學(xué)可以參考一下
    2021-12-12
  • python如何對(duì)數(shù)組進(jìn)行降維

    python如何對(duì)數(shù)組進(jìn)行降維

    這篇文章主要介紹了python如何對(duì)數(shù)組進(jìn)行降維問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python基于QRCode實(shí)現(xiàn)生成二維碼的方法【下載,安裝,調(diào)用等】

    Python基于QRCode實(shí)現(xiàn)生成二維碼的方法【下載,安裝,調(diào)用等】

    這篇文章主要介紹了Python基于QRCode實(shí)現(xiàn)生成二維碼的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python下載,安裝與調(diào)用QRCode實(shí)現(xiàn)生成二維碼功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • PyHacker編寫(xiě)URL批量采集器

    PyHacker編寫(xiě)URL批量采集器

    這篇文章主要為大家介紹了SpringBoot整合VUE?EasyExcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python+Django+pycharm+mysql 搭建首個(gè)web項(xiàng)目詳解

    python+Django+pycharm+mysql 搭建首個(gè)web項(xiàng)目詳解

    這篇文章主要介紹了python+Django+pycharm+mysql 搭建首個(gè)web項(xiàng)目,結(jié)合實(shí)例形式詳細(xì)分析了python+Django+pycharm+mysql搭建web項(xiàng)目的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評(píng)論