2018-09-28day4-字符串(切片、字符串運(yùn)算)

(補(bǔ)充):字符前面加r/R來阻止轉(zhuǎn)義

字符串

python中可以把字符串看成是一個(gè)序列(容器),容器中內(nèi)容只能是字符,每一個(gè)字符可以稱為字符串中的元素。
字符串是一個(gè)不可變的序列,有序的(不可變指的是字符串中的每個(gè)字符,以及每個(gè)字符的位置不可變)

獲取字符串中的單個(gè)字符

每一個(gè)字符串中的字符都會(huì)對應(yīng)一個(gè)下標(biāo),下標(biāo)是根據(jù)字符在字符串中的位置,從前往后依次增加的(第一個(gè)是0)

獲取單個(gè)字符(下標(biāo)不能越界)

語法:字符串[下標(biāo)] ---> 根據(jù)下標(biāo)獲取字符串中的字符
說明:
字符串:可以是字符串的變量,也可以是字符串值
[]:固定寫法
下標(biāo):0~字符串長度-1; -1 ~ -長度

str3 = 'python'
#p -->0   y -->1  t -->2 h-->3......n -->5
#n -->-1   0 -->-2  h -->-3 t-->-4......p -->-6

切片

獲取部分字符

a.語法:字符串[起始下標(biāo):結(jié)束下標(biāo)] -->獲取字符串中從起始下標(biāo)開始,到結(jié)束下標(biāo)-1的字符
默認(rèn)步長為1

注意:起始下標(biāo)對應(yīng)的字符一定要在結(jié)束下標(biāo)對應(yīng)的字符前面,否則取不到值。
str2 = '今天心情也要美美噠'
print(str2[1:-1])
#天心情也要美美

b.語法:字符串[ 起始下標(biāo):結(jié)束下標(biāo):步長] --> 從起始下標(biāo)開始獲取,每步長獲取一個(gè),獲取到結(jié)束下標(biāo)前一個(gè)為止
步長為正:從前往后取(起始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)對應(yīng)的字符前面,否則取不到值)
步長為負(fù):從后往前取(起始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)對應(yīng)的字符后面,否則取不到值)

str5 = '海賊王、一拳超人、一人之下、進(jìn)擊的巨人'
print(str5[1:10:2])
#賊、拳人一
print(str5[10:0:-1])
#人一、人超拳一、王賊
切片時(shí)下標(biāo)可以省略,省略不同下標(biāo)有不同意義
str3 = '閣下何不同風(fēng)起,扶搖直上九萬里'
print(str3[:4])
#閣下何不
print(str3[:4:-1])
#里萬九上直搖扶,起風(fēng)
省略結(jié)束下標(biāo):字符[起始下標(biāo):] ---->從開始下標(biāo)取,取到最后
str3 = '閣下何不同風(fēng)起,扶搖直上九萬里'
print(str3[-4:])
#上九萬里
str3 = '閣下何不同風(fēng)起,扶搖直上九萬里'
print(str3[-4::-1])
#上直搖扶,起風(fēng)同不何下閣
str3 = '閣下何不同風(fēng)起,扶搖直上九萬里'
print(str3[::-1])
#里萬九上直搖扶,起風(fēng)同不何下閣

注意:下標(biāo)可以越界

字符串運(yùn)算符

字符串支持+、*和比較運(yùn)算符

+

字符串的+號運(yùn)算符
字符串1 + 字符串2 --> 將字符串1和字符串2拼接在一起產(chǎn)生一個(gè)新的字符串

str4 = '玉樹臨風(fēng)美少年'
str6 = '攬鏡自顧夜不眠'
str7 = ' '
print(str4+str7+str6)
#玉樹臨風(fēng)美少年 攬鏡自顧夜不眠

*

字符串的*號運(yùn)算符
字符串1 * n -->字符串1重復(fù)n次,產(chǎn)生一個(gè)新的字符串(n只能是數(shù)字)

str8 = '家有千金,行止由心!'
print(str8*3)
#家有千金,行止由心!家有千金,行止由心!家有千金,行止由心!

比較運(yùn)算符

判斷相等
print('abc' == 'abc')(判斷字符串兩邊的值是否相等)
#True
print('abc' != 'ac')
#True

比較大小

從前往后,每個(gè)字符的編碼值的大小,如果第一個(gè)相等就比第二個(gè)直到比到不相同為止 (如果都相等就是True)

print('zabcdef' > 'zbc')
#False
判斷一個(gè)字符是否是數(shù)字字符,判斷一個(gè)字符是否是字母字符(根據(jù)編碼值比較)
char = '5'
print('0'<=char<='9')
#True          (判斷char是否是數(shù)字字符)
char = 'H'
print('a'<=char<='z' or 'A' <=char<='z')    (判斷判斷char是否是字母字符)
##True

in和not in

字符串1 in 字符串2 --> 判斷字符串1是否在字符串2中(字符串2是否包含字符串1)結(jié)果是布爾值。

print('ab' in 'abc')
#True
print('ab' in 'acd')
#False
print('ab' not in 'abc')
#False
print('ab' not in 'acd')
#True

len()函數(shù)

len是python內(nèi)置函數(shù),功能是用來獲取序列的長度(容器中元素的個(gè)數(shù))
len(序列)
字符串的長度就是字符串中字符的個(gè)數(shù)

str9 = '床前明月光\n疑是地上霜!'
print(len(str9))
#12
str9 = r'床前明月光\n疑是地上霜!'
#13
str9 = '你好嗎?\u4eff\u5cff'
print(len(str9))
#6
str9 = '你好嗎?\u4eff\u5cff'
print(str9[len(str9)-1])
#峿
str9 = '你好嗎?\u4eff\u5cff'
print(str9[-len(str9)])
#你

%(格式字符串)

字符串的內(nèi)部,通過格式占位符來表示字符串中變化的部分,然后在后面用值來填充變化的部分

語法:帶有占位符的字符串 % (給占位符賦值的值)

注意:前面有多少個(gè)占位符,后邊()中就必須有多少值。并且值的個(gè)數(shù)和值的類型要和前面的占位符一一對應(yīng)

%s --->字符串
%d --->數(shù)字
%f --->浮點(diǎn)數(shù)
%.nf -->保留小數(shù)點(diǎn)后n位小數(shù)
%e -->用科學(xué)計(jì)數(shù)法格式浮點(diǎn)數(shù)
%c -->數(shù)字轉(zhuǎn)字符

nsme = '葉玉'
age = 18
money = 19.699
message = '姓名:%s 年齡:%d 薪資:%.3f' %(nsme,age,money)
print(message)
#姓名:葉玉 年齡:18 薪資:19.699

字符串的內(nèi)建函數(shù)

使用方法:字符串.方法名(參數(shù))
capitalize():將字符串的第一個(gè)字符串轉(zhuǎn)換為大寫,返回一個(gè)新的字符串
如果第一個(gè)字符不是字母,就不轉(zhuǎn)換

str1 = 'yeyu'
a = str1.capitalize()
print(a)
#Yeyu
字符串居中

center(width,fillchar)

str1 = '葉玉'
new_str = str1.center(8,'*')
print(new_str)
#***葉玉***
字符串左對齊

ljust(width,fillchar)

str1 = '葉玉'
new_str = str1.ljust(8,'*')
print(new_str)
#葉玉******
字符串右對齊

rjust(width,fillchar)

str1 = '葉玉'
new_str = str1.rjust(8,'*')
print(new_str)
#******葉玉

練習(xí):根據(jù)進(jìn)班順序,添加學(xué)生號 例如 第一個(gè)人學(xué)號就是python0001

num = 99
new = 'python1807'+str(num).rjust(4,'0')
print(new)
#python18070099
字符串1.count(字符串2)-->統(tǒng)計(jì)字符串1中字符串2 的個(gè)數(shù)
num = 'aaaabbbaaaaa'.count('b')
print(num)
#3
字符串1.endswith(字符串2)-->判斷字符串1 是否以字符串2結(jié)尾
str1 = 'when i was'
print(str1.endswith('was'))
#True
字符串1.startswith(字符串2)-->判斷字符串1 是否以字符串2開頭
str1 = 'when i was'
print(str1.startswith('when'))
#True
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容