摘要:方法語法格式作用檢索字符串是否以指定的字符串結(jié)尾,如果是則返回,否則返回。需要思維導(dǎo)圖源文件的請(qǐng)留言你的郵箱。
文章末尾獲取思維導(dǎo)圖高清源文件
使用“+”可以對(duì)多個(gè)字符串進(jìn)行拼接
語法格式:str1 + str2
>>> str1 = "aaa" >>> str2 = "bbb" >>> print(str1 + str2) aaabbb
需要注意的是字符串不允許直接與其他類型進(jìn)行拼接,例如
>>> num = 100 >>> str1 = "hello" >>> print(str1 + num) Traceback (most recent call last): File "", line 1, in print(str1 + num) TypeError: can only concatenate str (not "int") to str
上面這種情況我們可以將num轉(zhuǎn)換為字符串再進(jìn)行拼接
>>> num = 100 >>> str1 = "hello" >>> print(str1 + str(num)) hello100
這樣就不會(huì)報(bào)錯(cuò)了
計(jì)算字符串的長(zhǎng)度在Python中使用len()函數(shù)來計(jì)算字符串的長(zhǎng)度
語法格式:len(string)
>>> str1 = "hello" >>> len(str1) 5 >>> str2 = "你好" >>> len(str2) 2 >>> str3 = "1111" >>> len(str3) 4
從上面的結(jié)果我們可以看出,在默認(rèn)情況下,len函數(shù)在計(jì)算字符串的長(zhǎng)度時(shí),無論是數(shù)字,字母還是多字節(jié)的漢字都認(rèn)為是一個(gè)字符。
為什么說是默認(rèn)情況下呢,因?yàn)樵趯?shí)際開發(fā)中,可能因?yàn)槲覀儾扇〉木幋a不同,字符串實(shí)際所占的字節(jié)數(shù)也不同。
UTF-8編碼,漢字占3個(gè)字節(jié)
GBK或者GB2312,漢字占2個(gè)字節(jié)
這時(shí)我們可以通過使用encode()方法進(jìn)行編碼后再進(jìn)行獲取長(zhǎng)度。
例如:
>>> str1 = "你好" >>> len(str1) 2 >>> len(str1.encode("gbk")) 4 >>> len(str1.encode("utf-8")) 6截取字符串
語法格式:string[start : end : step]
參數(shù)說明
string:表示要截取的字符串
start:表示要截取的第一個(gè)字符的索引(包括該字符),如果不指定,則默認(rèn)為0
end:表示要截取的最后一個(gè)字符的索引(不包括該字符),如果不指定則默認(rèn)為字符串的長(zhǎng)度。
step:表示切片的步長(zhǎng),如果省略,則默認(rèn)為1,當(dāng)省略該步長(zhǎng)時(shí),最后一個(gè)冒號(hào)也可以省略。
>>> str1 = "hello world!" >>> str1[1] #截取第2個(gè)字符 "e" >>> str1[2:] #從第3個(gè)字符開始截取 "llo world!" >>> str1[:4] "hell" >>> str1[1:5] "ello" >>> str1[-1] #截取最后一個(gè)字符 "!" >>> str1[2:-2] "llo worl"
注意:字符串的索引是從0開始的
分割字符串python中分割字符串是使用split()方法把字符串分割成列表
語法格式: str.split(sep, maxsplit)
參數(shù)說明:
str:表示要進(jìn)行分割的字符串
sep:用于指定分隔符,可以包含多個(gè)字符,默認(rèn)為None,即所有空字符(包括空格、換行"n”、制表符“t”等)。
maxsplit:可選參數(shù),用于指定分割的次數(shù),如果不指定或者為-1,則分割次數(shù)沒有限制,否則返回結(jié)果列表的元素個(gè)數(shù)最多為 maxsplit+1
返回值:分隔后的字符串列表。
>>> str1 = "i am a good boy!" >>> str1.split() #采用默認(rèn)分割符進(jìn)行分割 ["i", "am", "a", "good", "boy!"] >>> str1.split(" ") #采用空格進(jìn)行分割 ["i", "am", "a", "good", "boy!"] >>> str1.split(" ", 3) #采用空格進(jìn)行分割,并且只分割前3個(gè) ["i", "am", "a", "good boy!"]
注意默認(rèn)情況下按空格分割
檢索字符串python中字符串的查找方法
1、count()方法
語法格式:str.count(sub[, start[, end]])
作用:用于檢索指定字符串在另一個(gè)字符串中出現(xiàn)的次數(shù),如果檢索的字符串不存在則返回0,否則返回出現(xiàn)的次數(shù)。
參數(shù)說明
str:表示原字符串
sub:表示要檢索的子字符串
start:可選參數(shù),表示檢索范圍的起始位置的索引,如果不指定,則從頭開始檢索
end:可選參數(shù),表示檢索范圍的結(jié)束位置的索引,如果不指定,則一直檢索到結(jié)尾
>>> str1 = "hello world" >>> print(str1.count("o")) 2
2、find()方法
語法格式:str.find(sub[, start[, end]])
作用:檢索是否包含指定的字符串,如果檢索的字符串不存在則返回-1,否則返回首次出現(xiàn)該字符串時(shí)的索引。
>>> str1 = "hello world!" >>> str1.find("wo") 6
3、index()方法
語法格式:str.index(sub[, start[, end]])
作用:和find方法類似,也用于檢索是否包含指定的字符串,使用index方法,當(dāng)指定的字符串不存在時(shí)會(huì)拋異常。
>>> str1 = "hello world!" >>> str1.index("w") 6 >>> str1.index("m") Traceback (most recent call last): File "", line 1, in str1.index("m") ValueError: substring not found >>> str1.find("m") -1
4、startswith()方法
語法格式:str.startswith(prefix[, start[, end]])
作用:檢索字符串是否以指定的字符串開頭,如果是則返回true,否則返回false。
>>> str1 = "hello world!" >>> str1.startswith("hello") True >>> str1.startswith("hi") False >>>
5、endswith()方法
語法格式:str.endswith(prefix[, start[, end]])
作用:檢索字符串是否以指定的字符串結(jié)尾,如果是則返回true,否則返回false。
>>> str1 = "hello world!" >>> str1.endswith("world!") True >>> str1.endswith("haha") False字符串的大小寫轉(zhuǎn)換
1、lower()方法
語法格式:str.lower()
作用:將字符串中的大寫字母轉(zhuǎn)換為小寫字母
>>> str1 = "Hello World!" >>> str1.lower() "hello world!"
2、upper()方法
語法格式:str.upper()
作用:將字符串中的小寫字母轉(zhuǎn)換為大寫字母
>>> str1 = "Hello World!" >>> str1.upper() "HELLO WORLD!"去除字符串中的空格和特殊字符
開發(fā)中,我們會(huì)遇到這樣的需求,字符串前后(左右側(cè))不允許出現(xiàn)空格和特殊字符或者將用戶輸入的字符串中誤輸入的空格去除掉。這時(shí)我們就需要用到strip函數(shù)。
1、strip()方法
語法格式:str.strip([chars])
作用:去除字符串前后(左右側(cè))的空格或特殊字符
>>> str1 = " hello world! " >>> str1.strip() "hello world!" >>> str2 = "#hello world#@#" >>> str2.strip("#") "hello world#@" >>> str3 = "@hello world!@." >>> str3.strip("@.") "hello world!"
2、lstrip()方法
語法格式:str.lstrip([chars])
作用:去除字符串前面(左側(cè))的空格或特殊字符
>>> str1 = " hello world! " >>> str1.lstrip() "hello world! " >>> str2 = "#hello world#@#" >>> str2.lstrip("#") "hello world#@#" >>> str3 = "@.hello world!@." >>> str3.lstrip("@.") "hello world!@."
3、rstrip()方法
語法格式:str.rstrip([chars])
作用:去除字符串后面(右側(cè))的空格或特殊字符
>>> str1 = " hello world! " >>> str1.rstrip() " hello world!" >>> str2 = "#hello world#@#" >>> str2.rstrip("#") "#hello world#@" >>> str3 = "@.hello world!@." >>> str3.rstrip("@.") "@.hello world!"格式化字符串
所謂格式化字符串就是先制定一個(gè)模板,在模板中預(yù)留幾個(gè)空位,然后根據(jù)需要填上相應(yīng)的內(nèi)容。
使用“%”操作符語法格式:"%[-][+][0][.n]格式化字符"%exp
參數(shù)說明
-:可選參數(shù),用于指定左對(duì)齊,正數(shù)前方無符號(hào),負(fù)數(shù)前面加負(fù)號(hào)
+:可選參數(shù),用于指定右對(duì)齊,正數(shù)前方加正號(hào),負(fù)數(shù)前方加負(fù)號(hào)
0:可選參數(shù),表示右對(duì)齊,正數(shù)前方無符號(hào),負(fù)數(shù)前方加負(fù)號(hào),用0填充空白處(一般與m參數(shù)一起使用)
m:可選參數(shù),表示占有寬度
n:可選參數(shù),表示小數(shù)點(diǎn)后保留的位數(shù)
格式化字符:用于指定類型,其值如下表所示
exp:要轉(zhuǎn)換的項(xiàng),如果要指定的項(xiàng)有多個(gè),需要通過元組的形式進(jìn)行指定,但不能使用列表。
>>> template = "學(xué)號(hào):%d,姓名:%s,班級(jí):%s" >>> print(template% (123,"張三","一年級(jí)")) 學(xué)號(hào):123,姓名:張三,班級(jí):一年級(jí)
好了,關(guān)于Python中字符串的操作方法就介紹到這里,希望可以幫助到大家。
需要思維導(dǎo)圖源文件的請(qǐng)留言你的郵箱。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43716.html
此專欄文章是對(duì)力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識(shí)重點(diǎn)并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會(huì)加上我對(duì)導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(diǎn)(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進(jìn)一步加強(qiáng)理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號(hào)先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...
摘要:此專欄文章是對(duì)力扣上算法題目各種方法的總結(jié)和歸納整理出最重要的思路和知識(shí)重點(diǎn)并以思維導(dǎo)圖形式呈現(xiàn)當(dāng)然也會(huì)加上我對(duì)導(dǎo)圖的詳解目的是為了更方便快捷的記憶和回憶算法重點(diǎn)不用每次都重復(fù)看題解畢竟算法不是做了一遍就能完全記住的所 ...
此專欄文章是對(duì)力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識(shí)重點(diǎn)并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會(huì)加上我對(duì)導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(diǎn)(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進(jìn)一步加強(qiáng)理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號(hào)先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...
摘要:我在寫作的過程中,給自己提了一個(gè)要求盡量深入淺出,條理清晰。至于是否達(dá)到了,希望讀者們多多批評(píng)指正,并給我提意見和建議。第章介紹中的函數(shù)式編程,包括匿名函數(shù)閉包和裝飾器等。第章介紹使用處理進(jìn)程線程和協(xié)程。 showImg(https://segmentfault.com/img/remote/1460000007990784?w=268&h=385); 在學(xué)習(xí)和使用 Python 的過...
摘要:思維導(dǎo)圖的好處它們能投讓你一直對(duì)全部知識(shí)圖景了然于胸,因而可以讓你對(duì)那一學(xué)科的全部知識(shí)有一個(gè)更加平衡和更加全面的理解。竭盡所能地利用一切讓思維導(dǎo)圖的制作過程充滿樂趣音樂繪畫色彩。 從小老師就教育小肆,要多記筆記,說好記性不如爛筆頭,但記過的筆記卻很快就忘了,甚至回頭再看都不知道當(dāng)時(shí)記得什么,一直期望能有個(gè)比記筆記更好的方法來學(xué)習(xí),直到我遇見了它--思維導(dǎo)圖。 什么是思維導(dǎo)圖? 人腦不是...
閱讀 3247·2021-11-25 09:43
閱讀 3237·2021-11-23 09:51
閱讀 3543·2019-08-30 13:08
閱讀 1601·2019-08-29 12:48
閱讀 3619·2019-08-29 12:26
閱讀 427·2019-08-28 18:16
閱讀 2594·2019-08-26 13:45
閱讀 2462·2019-08-26 12:15