day9-字符串

1.操作字符串

1)查(獲取字符串中的字符)

  • 獲取單個字符:字符串[下標(biāo)]
  • 字符串切片:字符串[開始下標(biāo):結(jié)束下標(biāo):步長]
  • 遍歷字符串:直接遍歷字符串/通過遍歷下標(biāo)遍歷字符串

a.獲取單個字符

print('==========獲取單個字符==========')
str1 = 'hello,python!'
print(str1[4], str1[-4])

str2 = 'abc\n123\u4e00你好'
print(str2[7])        # 一

# 補(bǔ)充:r語法    - 在字符串的最前面加r/R遮斥,會讓字符串中所有的轉(zhuǎn)義字符的功能消失 (一般在正則表達(dá)式中使用)
str3 = r'\tabc\n123\u4e00你好'
print(str3)
print(str3[7])        # 1

b.字符串切片

str1 = 'hello,python!'
print(str1[1:7:2])    # el,
print(str1[-1:7])     #
print(str1[-2:2:-1])  # nohtyp,ol
print(str1[:5:2])     # hlo
print(str1[2::-1])    # leh
print(str1[-5::2])    # to!

2)字符串相關(guān)操作

a.數(shù)學(xué)運(yùn)算符:+示惊,*

字符串1 + 字符串2 - 將字符串1和字符串2拼接在一起產(chǎn)生一個新的字符串

str1 = 'hello'
str2 = 'abc'
print(str1 + ',' + str2)

字符串 * N 或者 N * 字符串 - 字符串重復(fù)N次產(chǎn)生一個新的字符串

print(str1 * 3)

b.比較運(yùn)算符:<,>,<=,>=,==,!=

1.字符串比較大姓┢埂:從前往后比較兩個字符串中相同位置上的字符的大小蜘犁,誰的字符的編碼值大對應(yīng)的字符串就大
2.應(yīng)用
判斷字符是否是大寫字母:'A' <= char <= 'Z'
判斷字符是否是小寫字母:'a' <= char <= 'z'
判斷字符是否是字母:('A' <= char <= 'Z') or ('a' <= char <= 'z')
判斷字符是否是中文字符:'\u4e00' <= char <= '\u9fa5'
判斷字符是否是數(shù)字字符:'0' <= char <= '9'

print('acsasa' > 'cd')    # False
print('abcs' > 'abca')    # True
# 練習(xí)1:統(tǒng)計(jì)輸入的字符串中數(shù)字字符的個數(shù)
# 練習(xí)2:將輸入的字符串中所有的小寫字母取出來
num = 0
str4 = input('請輸入用戶名:')
str5 = ''
for chars in str4:
    if '0' <= chars <= '9':
        num += 1
    if 'a' <= chars <= 'z':
        str5 += chars

print('數(shù)字字符的個數(shù):', num)
print(str5)

c.in 和 not in

字符串1 in 字符串2 - 判斷字符串2中是否包含字符串1(判斷字符串1是否是字符串2的子串)

str1 = 'abc'
str2 = 'abcaqk1'
print(str1 in str2)       # True
print(str1 in 'a1sba1c')  # False

d.相關(guān)函數(shù):len, max, min, sorted, str

str(數(shù)據(jù)) - 將指定數(shù)據(jù)轉(zhuǎn)換成字符串赡勘;(所有類型的數(shù)據(jù)都可以轉(zhuǎn)換成字符串,轉(zhuǎn)換的時候是直接在數(shù)據(jù)本身外加引號)
字符串轉(zhuǎn)整型:字符串去掉引號后本身就是一個整數(shù)竹习,才能轉(zhuǎn)換成整型
字符串轉(zhuǎn)浮點(diǎn)型:字符串去掉引號后本身就是一個數(shù)字指孤,才能轉(zhuǎn)換成浮點(diǎn)型

print(float('3e4'))
print(int('39'))

2.格式字符串

1)什么是格式字符串

字符串中使用格式占位符來代替字符串中變化的部分,這種字符串就是格式字符串
1.語法
帶有格式占位符的字符串 % (值1猴抹,值2带族,值3,...)
2.說明
% - 固定寫法
() - 固定寫法蟀给,當(dāng)格式占位符只有一個的時候可以省略
值 - 值要和前面的格式占位符一一對應(yīng)(個數(shù)和類型)
3.格式占位符(不是python特有的)
%s - 字符串
%d - 整型
%.Nf - 浮點(diǎn)型蝙砌,N表示小數(shù)點(diǎn)后面的位數(shù)
%c - 字符(可以將字符編碼轉(zhuǎn)換成字符拼接到字符串中)

name = '小明'
age = 3
gender = '男'
weight = 55
pay = 100000
message = '%s今年%d歲,性別%s跋理,體重:%.2fkg择克,薪資:%.2f元' % (name, age, gender, weight, pay)
print(message)

2)格式字符串

帶有{}的格式字符串.format(值1,值2前普,值3肚邢,...)

message = '{},今年{}歲'.format('小明', 10)
print(message)

message = '{0},{1},{1}{0}'.format('小明', 10)
print(message)     # 小明,10,10小明

message = '{name},{age}'.format(name='小白', age=18)
print(message)

message = '{1[1]},{0},{0[0]}'.format([0, 1], 'abc')
print(message)

數(shù)字格式

# 注意:格式字符串中約束小數(shù)位數(shù)的時候采用的是四舍五入
# {:.Nf}   - 讓數(shù)字保留N位小數(shù)
message = '圓周率:{0:.2f},周長:{0:.1f}*{1}**2'.format(3.1415926, 10)     # 四舍五入
print(message)

3.字符串相關(guān)方法

1)小寫字母和大小字母之間的相互轉(zhuǎn)換

char = 'a'
# 小寫字母轉(zhuǎn)大寫:編碼值減去32
new_char = chr(ord(char) - 32)
print(new_char)

2)字符串對齊

  • 字符串.center(長度拭卿,字符) - 產(chǎn)生一個指定長度的字符串道偷,原字符串居中,剩下的部分用指定的字符填充

  • 字符串.ljust(長度记劈,字符) - 產(chǎn)生一個指定長度的字符串勺鸦,原字符串居左,剩下的部分用指定的字符填充

  • 字符串.rjust(長度目木,字符) - 產(chǎn)生一個指定長度的字符串换途,原字符串居右,剩下的部分用指定的字符填充

  • 字符串.zfill(長度) - 產(chǎn)生一個指定長度的字符串刽射,原字符串居右军拟,剩下的部分用字符0填充

str1 = 'abc'
new_str1 = str1.center(9, ' ')
print(new_str1)

new_str2 = str1.ljust(5, ' ')
print(new_str2)

new_str3 = str1.rjust(8, ' ')
print(new_str3)

練習(xí):產(chǎn)生學(xué)號

num = 4
new_str4 = 'py1905' + str(num).zfill(5)
print(new_str4)

3)查找

  • 字符串1.find(字符串2) - 獲取字符串2第一次在字符串1出現(xiàn)的位置,如果有返回下標(biāo)(返回正的下標(biāo))誓禁,沒有返回-1

  • 字符串1.index(字符串2) - 獲取字符串2第一次在字符串1出現(xiàn)的位置懈息,如果有返回下標(biāo)(返回正的下標(biāo)),沒有就報(bào)錯

  • 字符串1.find(字符串2摹恰,開始下標(biāo)辫继,結(jié)束下標(biāo)) - 在開始下標(biāo)到結(jié)束下標(biāo)前對應(yīng)的返回內(nèi)查找字符串2

  • 字符串1.index(字符串2,開始下標(biāo)俗慈,結(jié)束下標(biāo)) -

str1 = 'how are you'
print(str1.find('are'))
print(str1.find('1'))        # -1
# print(str1.index('1'))       # ValueError: substring not found

4)join(***)

字符串1.join(序列) - 將序列中的元素用字符串1連接在一起產(chǎn)生一個新的字符串(序列中的元素必須都是字符串)

names = ['小黑', '小華', '小花']
new_str5 = ''.join(names)
print(new_str5)

5)替換

字符串1.replace(old, new) - 將字符串1中所有的old都替換成new姑宽,然后產(chǎn)生一個新的字符串

str2 = 'how are you? I am fine, thank you!'
new_str2 = str2.replace('are', 'is')
print(str2)
print(new_str2)

創(chuàng)建映射表(map)
str.maketrans(字符串1,字符串2) - 創(chuàng)建字符串1和字符串2字符一一對應(yīng)的映射表闺阱,字符串1是需要被替換的字符炮车,字符串2是目的字符(新字符)
字符串1.translate(映射表) - 按照映射表將字符串中的字符進(jìn)行替換,產(chǎn)生一個新的字符串

str2 = 'how are you? I am fine, thank you!'
map1 = str2.maketrans('are', '123')
print(map1)

str2 = 'how are you? I am fine, thank you!'
new_str2 = str2.translate(map1)
print(new_str2)

6)字符串切割

字符串.split(字符串2) - 將字符串1中的字符串2作為切點(diǎn),切割字符串1

lists = 'how are you? I am fine, thank you!'.split(' ')
print(lists)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘦穆,一起剝皮案震驚了整個濱河市纪隙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扛或,老刑警劉巖瘫拣,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異告喊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)派昧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門黔姜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒂萎,你說我怎么就攤上這事秆吵。” “怎么了五慈?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵纳寂,是天一觀的道長。 經(jīng)常有香客問我泻拦,道長毙芜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任争拐,我火速辦了婚禮腋粥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘架曹。我一直安慰自己隘冲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布绑雄。 她就那樣靜靜地躺著展辞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪万牺。 梳的紋絲不亂的頭發(fā)上罗珍,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音脚粟,去河邊找鬼靡砌。 笑死,一個胖子當(dāng)著我的面吹牛珊楼,可吹牛的內(nèi)容都是我干的通殃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼画舌!你這毒婦竟也來了堕担?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤曲聂,失蹤者是張志新(化名)和其女友劉穎霹购,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朋腋,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡齐疙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旭咽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贞奋。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖穷绵,靈堂內(nèi)的尸體忽然破棺而出轿塔,到底是詐尸還是另有隱情,我是刑警寧澤仲墨,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布勾缭,位于F島的核電站,受9級特大地震影響目养,放射性物質(zhì)發(fā)生泄漏俩由。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一癌蚁、第九天 我趴在偏房一處隱蔽的房頂上張望采驻。 院中可真熱鬧,春花似錦匈勋、人聲如沸礼旅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痘系。三九已至,卻和暖如春饿自,著一層夾襖步出監(jiān)牢的瞬間汰翠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工昭雌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留复唤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓烛卧,卻偏偏與公主長得像佛纫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

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