一階段day4-字符串

一、字符串的元素

1、阻止轉(zhuǎn)義

在字符串的最前面可以添加r/R來阻止字符串中的所有轉(zhuǎn)義字符轉(zhuǎn)義

str1='How are you\n fine';print(str1)
輸出結(jié)果
str1=r'How \t are you\n fine';print(str1)
輸出結(jié)果

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ù)表

字符串內(nèi)部函數(shù)表
字符串內(nèi)部函數(shù)表
字符串內(nèi)部函數(shù)表
字符串內(nèi)部函數(shù)表
字符串內(nèi)部函數(shù)表
字符串內(nèi)部函數(shù)表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 處在現(xiàn)實(shí)社會的洪流中,在為工作、買房、買車、結(jié)婚、帶娃等忙碌的同時,我們當(dāng)中的很多人在不知不覺中,已經(jīng)面臨心理亞健...
    小樹談史閱讀 1,803評論 1 15
  • 曾經(jīng)我想殺過一只老鼠,但是后來我放過它了。我見它驚慌失措,無處可逃。突然的感到一種悲哀。為它,也為我自己?;蛟S,就...
    YANandYAN閱讀 303評論 0 0
  • 有些朋友建議我去寫下投資方面的知識,我是不怎么敢動筆去寫投資方面的心得,并不是我不想寫,而是自己出于投資市場的敬畏...
    古剎青苔閱讀 772評論 0 1

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