一、字符串的元素
1、阻止轉(zhuǎn)義
在字符串的最前面可以添加r/R來阻止字符串中的所有轉(zhuǎn)義字符轉(zhuǎn)義
str1='How are you\n fine';print(str1)

str1=r'How \t are you\n fine';print(str1)

2、Python中可以把字符串看成是一個序列(容器),容器中內(nèi)容是字符;
每一個字符可以稱為字符串中的元素;
字符串是一個不可變的、有序的序列;
(不可變是指字符串中的每個字符以及其位置不可變)
3、獲取字符串中的單個字符
Python中每個字符串中字符都會對應(yīng)一個下標(biāo)(索引),下標(biāo)是根據(jù)字符在字符串中的位置,從前往后依次增加,下標(biāo)從零開始計(jì)數(shù);獲取單個字符串不能越界;
語法:字符串[下標(biāo)] 'hello'[2]
說明:a、字符串:可以是字符串的變量,也可以是字符串值;
b、[ ] 固定寫法;
c、下標(biāo):0~ 字符串長度-1;-1~ -長度;
str3='python' #p->0 y->1 t->2 h->3 o->4 n->5 或者 #p->-6 y->-5 t->-4 h->-3 o->-2 n->-1
print(str3[4]) #順數(shù)第4+1個字符 o;
print(str3[-4]) #倒數(shù)第4 個字符 t;
print('good good study\n day day up!'[-11]) #d
一個空格算一個字符,一個制表符(例如Tab鍵)也算一個字符
print('good good study\n day day up!'[17]) #d
一個轉(zhuǎn)義字符算一個字符
4、獲取字符串中的部分(也叫切片,可越界)
a、
語法:字符串[起始下標(biāo)m:結(jié)束下標(biāo)n] 默認(rèn)步長為1;
獲取字符串中從起始下標(biāo)m開始,到結(jié)束下標(biāo)n前的所有字符;
print('同九年,汝何秀!'[1:5]) #九年,汝
b、
語法:字符串[起始下標(biāo)m:結(jié)束下標(biāo)n:步長z]
獲取字符串中從起始下標(biāo)m開始,每間隔一個步長獲取一個字符,獲取到結(jié)束下標(biāo)n前結(jié)束;
print('good good study day day up!'[2:17:3]) #ogdty
print('good good study day day up!'[2:17]) #od good study d
print('good good study day day up!'[17:2:-1]) #ad yduts doog d
print('good good study day day up!'[-17:-2:1]) #study day day u
c、切片時下標(biāo)可以省略,省略不同下標(biāo)有不同意義
省略起始下標(biāo)[:n] 從開始0或者-1獲?。ㄗ⒁猓哼@里開頭可能是第一個字符,也可能是最后一個字符);
print('閣下何不同風(fēng)起,扶搖直上九萬里'[:5]) #閣下何不同
print('閣下何不同風(fēng)起,扶搖直上九萬里'[:5:-1]) #里萬九上直搖扶,起
省略結(jié)束下標(biāo)[m:] 從起始下標(biāo)m開始,獲取到結(jié)束(結(jié)束可能是字符串的最后一個字符,
也可能是字符串的第一個字符)
print('閣下何不同風(fēng)起,扶搖直上九萬里'[2:])#何不同風(fēng)起,扶搖直上九萬里
print('閣下何不同風(fēng)起,扶搖直上九萬里'[2::3]) #何風(fēng)扶上里
print('閣下何不同風(fēng)起,扶搖直上九萬里'[2::-1]) #何下閣
print('閣下何不同風(fēng)起,扶搖直上九萬里'[::-1]) #里萬九上直搖扶,起風(fēng)同不何下閣
二、Python中的字符串支持+、*和比較運(yùn)算符
1、+號運(yùn)算符
字符串1+字符串2 ;將字符串1和字符串2拼接在一起產(chǎn)生一個新的字符串
str1='恭喜';str2='發(fā)財(cái)';
print(str1+str2) #恭喜發(fā)財(cái)
print(str1+' '+str2) #恭喜 發(fā)財(cái)
2、*號運(yùn)算符
字符串1* 整數(shù) n 將字符串1重復(fù)n次,產(chǎn)生一個新的字符串
str3='klnfg'; print(str3* 3) #klnfgklnfgklnfg
先算*,再算+
3、比較運(yùn)算符
a、== 判斷是否相等,返回一個布爾值;
print('ds'=='ds') #True
b、> 、 < 比較大小:
從左往右比較字符串中的字符的編碼值大小,前位大小比出,則停止后位字符大小比較,返回一個布爾值;
print('asd'>'qwe') #False 因?yàn)閝的編碼值大于a
print('哈哈'>'qwe') #True 因?yàn)楣木幋a值大于q
4、in和not in
字符串1 in 字符串2 ; 判斷字符串1是否被包含在字符串2中
print('as' in 'rase') #True
print('as' in 'raise') #False
print('as' not in 'raise') #True
5、len() 函數(shù)
len( )是Python內(nèi)置函數(shù),功能是用來獲取序列的長度(容器中元素的個數(shù))
print(len("恭喜發(fā)財(cái)")) #4
print("恭喜發(fā)財(cái)"[len("恭喜發(fā)財(cái)")]) #IndexError: string index out of range,越界報錯
print("恭喜發(fā)財(cái)"[len("恭喜發(fā)財(cái)")-1]) #財(cái)
print("恭喜發(fā)財(cái)"[-len("恭喜發(fā)財(cái)")]) #恭
三、格式字符串
字符串的內(nèi)部通過格式占位符來表示字符串中變化的部分,然后在后面用值來填充變化的部分
語法:帶有占位符的字符串%(給占位符賦值數(shù))
注意:前面有多少個占位符,后邊()中就必須有多少值。 并且值的個數(shù)和值的類型要和前面的占位符一一對應(yīng)
%s 字符串
%d 整數(shù)
%f 浮點(diǎn)數(shù)
%.nf 保留n位小數(shù)的浮點(diǎn)數(shù)
%c 字符串的內(nèi)部通過格式占位符來表示字符串中變化

例如
name='李四'
age=20
money=12.43
message="姓名:%s 年齡:%d 薪酬:%.2f K" %(name,age,money)
print(message) # 姓名:李四 年齡:20 薪酬:12.43K
print("%c" %(90)) # Z
四、Python內(nèi)部中給我們提供了很多字符串相關(guān)的方法,使用方式:字符串.方法名(參數(shù))
1、capitalize() :將字符串的第一個字符轉(zhuǎn)換為大寫,并返回一個新的字符串
str='dog';new_str=str.capitalize()
print(new_str) #Dog
2、字符串對齊
center(width,fillchar) 居中填充
ljust(width,fillchar) 左對齊+填充
rjust(width,fillchar) 右對齊+填充
str='xxx'; new_str=str.center(7,'a')
print(new_str) # **aaxxxaa**
str='xxx'; new_str=str.ljust(7,'a')
print(new_str) # **xxxaaaa**
str='xxx'; new_str=str.rjust(7,'a')
print(new_str) # **aaaaxxx**
===========
num='11' ;
n_num='Py1807'+num.rjust(4,'0') ; # fillchar為填充字符,字符就是長度為1的字符串;
print(n_num) # Py18070011
3、字符串1.count(字符串2) ;統(tǒng)計(jì)字符串1中含有字符串2的個數(shù)
str1='grgfdgmdlfm';str2='dg'
print(str1.count(str2)) #1
print('grgfdgmdlfm'.count('dg')) #1
print('111111111111111'.count('11')) #7
4、字符串1.endswith.(字符串2) ; 判斷字符串1是否以字符串2結(jié)束
字符串1.startswith.(字符串2) ; 判斷字符串1是否以字符串2開始
print('abcdefg'.endswith('fg')) #True
print('abcdefg'.startswith('abc'))#True
5、字符串1.find(字符串2) 在字符串1中查找字符串2,返回第一個的開始下標(biāo),沒有則返回-1;
num1='123456';num2='345'
print(num1.find(num2)) #2
6、字符串內(nèi)部函數(shù)表





