Python基礎總結(jié)-03(字符串應用)

主要內(nèi)容為字符串豆同,包括字符串的切片番刊、格式字符串、字符串內(nèi)置函數(shù)的使用等內(nèi)容影锈。

一芹务、字符串

容器是一種可以存儲對象的對象,常見的容器有序列鸭廷、映射和集合
字符串就是一種序列枣抱,且是不可變的有序序列

轉(zhuǎn)義字符

1、特定意義的字符(例如:\n,\t,\f,\b ......)
2辆床、在字符串的最前面可以添加r或者R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義

str1="how are you \n fine"
print(str1)
str2=r"how are you \n fine"
print(str2)

獲取字符

語法:字符串[下標] --根據(jù)下標獲取字符串中的字符

str3="good good study\n day day up!"#轉(zhuǎn)義字符是一個字符
str4="  good good study\n day day up!"#制表符是一個字符
print(str3[-11],str3[17])
print(str4[-11],str4[18])

字符串切片

語法:
字符串[起始下標:結(jié)束下標]--獲取字符串中從起始下標開始佳晶,到結(jié)束下標前所有字符
字符串[起始下標:結(jié)束下標:步長]--從起始下標開始,每步長獲取一個讼载,獲取到結(jié)束下標前為止
字符串[:結(jié)束下標]--從開頭開始冉窝怼(可是從第一個中跌,也可是從最后一個)
字符串[:]--全部取完
注意:切片的時候下標可以越界

str5="同一個世界,同一個夢想"
print(str5[2:6],str5[6:-1])
str6="尤文圖斯淤刃、拜仁慕里黑、皇家馬德里吱型、利物浦逸贾、巴黎圣日耳曼"
print(str6[1:10:2],str6[10:1:-2])
str7="落霞與孤鶩齊飛,秋水共長天一色"
print(str7[:4],str7[:6:-2])
print(str7[-4:],str7[-4::-2])
print(str7[:],str7[::-1]) 

字符串運算

Python中的字符串支持+津滞、*和比較運算符
(1)加運算
加號兩邊不能一個是字符串铝侵,另一個是數(shù)字

str1="落霞與孤鶩齊飛"
str2="秋水共長天一色"
print(str1+','+str2) #落霞與孤鶩齊飛,秋水共長天一色

(2)乘運算

str3="abc"
str4="123"
print(str3*3) #abcabcabc
print(str3*3+str4) #先算乘,再算加  abcabcabc123

(3)比較運算

print('abc'=='abc','abc'!='acd')#判斷相等
print("a"==chr(97),"a"=="\u0061")#判斷相等
print('abcd'>'op',ord('a')>ord('o')) #比較大写バ臁:按序列比較字符的Unicode碼值
print('abc' in 'abcded','abc'in 'beabce','abc' not in 'abeced')#判斷字符串的包含關(guān)系
#判斷一個字符是否是數(shù)字字符:利用Unicode表和ASCII表
char='5'
print('0'<=char<='9')  #判斷char是否是數(shù)字
print('a'<=char<='z' or 'A'<=char<='Z')  #判斷char是否是字母

(4)字符串包含關(guān)系:in 咪鲜、not in

name='albert einstein is a very great great scientist'
substring='albert'
print(substring not in name,substring  in name) #False True

格式字符串

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

1撞鹉、百分號方式

格式:%[(name)][flags][width].[precision]typecode

  • (name) 可選疟丙,用于選擇指定的key
  • flags 可選,可供選擇的值有:右對齊(+):正數(shù)的加正號鸟雏,負數(shù)的加負享郊;左對齊(-):正數(shù)前沒有負號,負數(shù)前加負號
  • width 可選孝鹊,占有寬度
  • .precision 可選炊琉,小數(shù)點后保留的位數(shù)
  • typecode 必選
    s,獲取傳入的對象_str_方法的返回值又活,并將其格式化到指定位置
    r苔咪,獲取傳入對象的_repr_方法的返回值,并將其格式化到指定位置
    c柳骄,整數(shù):將數(shù)字轉(zhuǎn)換成其unicode對應的值团赏,10進制范圍為0 <= i <=1114111
    o,將整數(shù)轉(zhuǎn)換成八進制表示耐薯,并將其格式化到指定位置
    x馆里,將整數(shù)轉(zhuǎn)換成16進制,并將其格式化到指定位置
    d可柿,將整數(shù)鸠踪,浮點數(shù)轉(zhuǎn)化為十進制表示,并將其格式化到指定位置
    字符串格式化符號.png
name='小明'
age=22
salary=12.688
height=170
weight=72
addr="四川省成都市科華北路62號"
print("%s 的年齡是%d歲复斥,身高是%dkg营密,體重是%dcm,年收入是%f萬元,家庭住址是%s" % (name,age,height,weight,salary,addr))
print("%s 的年收入是%-10.2f元"%(name,salary)) 
字符串格式化輔助指令.png

2、format方式

name='xiaoming'
age=22
salary=12.688
#三種方式
str1='name is {name},age is {age},salary is {salary}'.format(name=name,age=age,salary=salary)
str2='name is {},age is {}, salary is {}'.format(name,age,salary)
str3='name is {0},age is{1}, salary is {2},the most important thing is salary is {2}'.format(name,age,salary)
print(str1,"\n",str2,"\n",str3, sep= '')
str4='name is {name:s},age is {age:d},salary is {salary:$>6.2f}'.format(name=name,age=age,salary=salary)
#$>6.2f:用$填充目锭,右對齊评汰,寬度為6纷捞,精度為2
#左對齊、右對齊和居中可分別使用<被去、 >和^
#$表示用$符號填充
print(str4, sep= '')

內(nèi)置函數(shù)

(1)字母處理類:有返回值
.upper() # 全部大寫
.lower() # 全部小寫
.swapcase() # 大小寫互換
.capitalize() # 首字母大寫主儡,其余小寫
.title() # 首字母大寫

name='albert einstein'
print(name.upper(),name.lower(),name.capitalize(),name.title(),name.swapcase(), sep=',')

(2)調(diào)整格式類
.ljust(width,fill) # 獲取固定長度惨缆,左對齊糜值,右邊不夠用fill值補齊
.rjust(width,fill) # 獲取固定長度坯墨,右對齊寂汇,左邊不夠用fill值補齊
.center(width,fill) # 獲取固定長度捣染,中間對齊骄瓣,兩邊不夠用fill值補齊
.zfill(width) # 獲取固定長度,右對齊耍攘,左邊不足用0補齊

name='albert einstein'
print(name.ljust(20,'*'),name.rjust(20,'*'),name.center(20,'*'),name.zfill(20), sep=',')#zfill()函數(shù)只能有一個參數(shù)
#albert einstein*****,*****albert einstein,**albert einstein***,00000albert einstein

(3)字符查找類
.find(str, beg=0 end=len(string)) # 搜索指定字符串榕栏,沒有返回-1
.rfind() # 從右邊開始查找
.index() # 同上,但是找不到會報錯
.rindex() # 從右邊開始蕾各,同上臼膏,但是找不到會報錯
.count() # 統(tǒng)計指定的字符串出現(xiàn)的次數(shù)
startswith()# 以某一個字符串開始
endswith()# 以某一個字符串結(jié)束

name='albert einstein is a very great great scientist'
print(len(name)) #47
print(name.find('einstein'),name.find('is'))#7 16
print(name.rfind('einstein'),name.rfind('is'))#7 44
print(name.index('einstein'),name.index('is'))
print(name.rindex('einstein'),name.rindex('is'))
print(name.count('e'),name.count('great'))
print(name.startswith('albert'),name.endswith('ist'))

(4)替換、連接示损、分割
.join(seq) #將字符串插入到目標字符串之間
.split('指定字符') # 按指定字符分割字符串為數(shù)組
.replace('old','new',次數(shù)) # 替換指定次數(shù)的old為new

sep="aaa"
seq="bbb"
print(sep.join(seq)) #baaabaaab
sep="abcabcabcabc"
print(sep.split("c"))#['ab', 'ab', 'ab', 'ab', '']
print(sep.replace('ab','ad',2)) #adcadcabcabc

(5)去空格
.strip() # 去兩邊空格
.lstrip() # 去左邊空格
.rstrip() # 去右邊空格
str.strip([chars]) 用于移除字符串頭尾指定的字符(默認為空格)或字符序列

name='\t Albert Einstein\t\n'
print(name)
a=name.strip()
print(a) #Albert Einstein
b=name.rstrip()
b=name.lstrip()
print(b)  #Albert Einstein

(6)判斷
.isalnum() # 是否全為字母或數(shù)字
.isalpha() # 是否全字母
.isdigit() # 是否全數(shù)字
.islower() # 是否全小寫
.isupper() # 是否全大寫
.istitle() # 判斷首字母是否為大寫
.isspace() # 判斷字符是否為空格
=========================================================
isdigit()渗磅、isdecimal()、isnumeric()的區(qū)別
都不能判斷小數(shù)-->'12.55' --False
isdigit()
True: Unicode數(shù)字检访,byte數(shù)字(單字節(jié))始鱼,全角數(shù)字(雙字節(jié)),羅馬數(shù)字
False: 漢字數(shù)字
Error: 無

isdecimal()
True: Unicode數(shù)字脆贵,医清,全角數(shù)字(雙字節(jié))
False: 羅馬數(shù)字,漢字數(shù)字
Error: byte數(shù)字(單字節(jié))

isnumeric()
True: Unicode數(shù)字卖氨,全角數(shù)字(雙字節(jié))会烙,羅馬數(shù)字,漢字數(shù)字
False:
Error: byte數(shù)字(單字節(jié))
=========================================================

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筒捺,一起剝皮案震驚了整個濱河市柏腻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌系吭,老刑警劉巖五嫂,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡沃缘,警方通過查閱死者的電腦和手機躯枢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來槐臀,“玉大人锄蹂,你說我怎么就攤上這事∷” “怎么了得糜?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長讥巡。 經(jīng)常有香客問我掀亩,道長舔哪,這世上最難降的妖魔是什么欢顷? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮捉蚤,結(jié)果婚禮上抬驴,老公的妹妹穿的比我還像新娘。我一直安慰自己缆巧,他們只是感情好布持,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陕悬,像睡著了一般题暖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捉超,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天胧卤,我揣著相機與錄音,去河邊找鬼拼岳。 笑死枝誊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的惜纸。 我是一名探鬼主播叶撒,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耐版!你這毒婦竟也來了祠够?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤粪牲,失蹤者是張志新(化名)和其女友劉穎哪审,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虑瀑,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡湿滓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年滴须,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叽奥。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡扔水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朝氓,到底是詐尸還是另有隱情魔市,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布赵哲,位于F島的核電站待德,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枫夺。R本人自食惡果不足惜将宪,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望橡庞。 院中可真熱鬧较坛,春花似錦、人聲如沸扒最。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吧趣。三九已至法竞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間强挫,已是汗流浹背岔霸。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纠拔,地道東北人秉剑。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像稠诲,于是被迫代替她去往敵國和親侦鹏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一臀叙、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,793評論 2 16
  • 1略水、上個周末上某個心靈成長課程,課程一開始劝萤,老師讓每個人都寫一句話渊涝,然后署名。共12個人,8個人的話是光里跨释,愛里胸私,...
    李信蘭閱讀 290評論 2 0
  • 1.雅思真題一套,護眼 2.口語打卡鳖谈,護眼 3.閱讀打卡岁疼,護眼 4.名著閱讀打卡,護眼 5.單詞打卡缆娃,護眼 6.體...
    一個人的朝圣遠行閱讀 144評論 0 1
  • 育嫻的感恩清單百分之百顯化 1捷绒、我感恩我的真我,對我無時無刻的陪伴與守護 2贯要、我感恩我的高級智慧暖侨,我愛你~我親愛的...
    感恩宇宙閱讀 209評論 0 0
  • 獵頭這個職業(yè),我至今都覺得它神秘崇渗,一直都想去探個究竟字逗。因換過幾份工作的原因,和他們有一些接觸显押,這種接觸也僅限于電話...
    殘劍閱讀 690評論 2 6