字符串_月隐学python第7课
一、字符串
字符串就是由若干個(gè)不同的unicode字符組成的不可變序列
1 .字符串創(chuàng)建
2.獲取字符
因?yàn)槭遣豢勺冃蛄?#xff0c;所以不能修改單個(gè)字符; 凡是修改字符串的操作都產(chǎn)生新串
3.字符串轉(zhuǎn)義
?
- 常?轉(zhuǎn)義字符
- 原生字符
如果在字符串中不把\當(dāng)做轉(zhuǎn)移字符,可以使?
4.序列通?操作
4 字符串常用函數(shù)
4.1 字符串查找和替換
str1 = 'a fox jumped over the fence'
4.2 字符串分隔和組合
4.3 字符串判斷
4. 4字符串轉(zhuǎn)換
4.5 其它方法
5. 字符串格式化
- 用%格式化
- 用format格式化
?、字節(jié)
在python3中最重要的特性是對(duì)文本和?進(jìn)制數(shù)據(jù)做了更加清晰的區(qū)分,?本總是Unicode,由字符類型表示,?二進(jìn)制數(shù)據(jù)則由byte類型表示, python3不會(huì)以任意隱式?式混用字節(jié)型和字符型,也因此在python3中不能拼接字符串和字節(jié)包(python2中可以,會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換),也不能在字節(jié)包中搜索字符串,也不能將字符串傳?參數(shù)為字節(jié)包的函數(shù)。Bytes 對(duì)象是由單個(gè)字節(jié)作為基本元素(8位,取值范圍 0-255)組成的序列,為不可變對(duì)象。 bytes對(duì)象只負(fù)責(zé)以二進(jìn)制字節(jié)序列的形式記錄所需記錄的對(duì)象,?于該對(duì)象到底表示什么(?如到底是什么字符)則由相應(yīng)的編碼格式解碼所決定。Python3中, bytes通常用于?絡(luò)數(shù)據(jù)傳輸、?進(jìn)制圖片和?件的保存等等。可以通過(guò)調(diào)用bytes()?成bytes實(shí)例,其值形式為 b'xxxxx',其中 'xxxxx' 為??多個(gè)轉(zhuǎn)義的十六進(jìn)制字符串(單個(gè) x 的形式為: \x12,其中\(zhòng)x為小寫的十六進(jìn)制轉(zhuǎn)義字符, 12為二位十六進(jìn)制數(shù))組成的序列,每個(gè)十六進(jìn)制數(shù)代表一個(gè)字節(jié)(八位二進(jìn)制數(shù),取值范圍0-255),對(duì)于同一個(gè)字符串如果采用不同的編碼方式生成bytes對(duì)象,就會(huì)形成不不同的值
1 創(chuàng)建字節(jié)
2 字符串和字節(jié)的轉(zhuǎn)換
作業(yè)
一、填空
?
1.已知s2 = ‘123’,則: s2 * 3 = _123123123_; s2 + str(456) = _123456__________;
2.已知s1 = ‘123456789’。則: s1[:3] = _123_; s1[-5:] = _56789_; s1[::2]=_13579_; s1[::-3] = _963_;
int(s1[3:5]) + int(s1[-5:3:-1]) = _50_______。
3.已知s1 = “this is a test of Python”;統(tǒng)計(jì)字符串中s出現(xiàn)的次數(shù): _print(s1.count("s"))__;
取出?串”test”的表達(dá)式: _print(s1[10:15])__; 獲取s1的反序字符串:
__print(s1[::-1])____; 將?串”test”替換為”exam”: __print(s1.replace("test", "exam"))___________
4.已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下:將a字符串的?大改為?寫,?寫改為?寫:_print(a.swapcase())____;轉(zhuǎn)為?寫字符串:_print(a.lower())____________。
5.已知x="abc",y="def",z=["d","e","f"], 則x.join(y)= __dabceabcf______________;
x.join(z) = __dabceabcf________________________。
6.把s1=”你好”,編碼為字節(jié)流字符串: ___print(s1.encode('utf-8'))______________
7.已知字符串: s2 = ‘ bj1902 ’,去除s2左邊的空格: _print(s2.lstrip())__________;去除s2右
邊的空格: _print(s2.rstrip())___________;去除s2兩邊的空格: __print(s2.strip())____________;
8.定義變量s=‘a(chǎn)bcde', 寫出下列代碼運(yùn)行的結(jié)果
s.upper() ___ABCDE_____________
s[2::-1] ____cba____________
s.isdigit() __False______________
s * 2 __abcdeabcde______________
'*'.join(list(s)[:3]) ____a*b*c____________
二、編程
初級(jí)
1. 輸?一個(gè)字符串,自?統(tǒng)計(jì)該字符串有多少個(gè)字符,不允許?len函數(shù)
2.任給一個(gè)字符串,請(qǐng)驗(yàn)證是否是?機(jī)號(hào),手機(jī)號(hào)為11位數(shù)字,開頭三位必須是130,151,186
- 使用列表存儲(chǔ)130,151,186;使用in判斷
- 使?切?左取3位
3.將字符串’1234567890’轉(zhuǎn)換成‘ 1,234,567,890’輸出,每3位?用逗號(hào)隔開。
4.輸?兩個(gè)字符串,從第一字符串中刪除第?個(gè)字符串中所有的字符
5.任意輸?一段文字,統(tǒng)計(jì)有多少個(gè)單詞(用空格隔開)、多少個(gè)數(shù)字、多少字?、多少空格。
6. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下:
a.將a字符串的數(shù)字取出,并輸出成一個(gè)新的字符串
b.請(qǐng)統(tǒng)計(jì)a字符串出現(xiàn)的每個(gè)字母的出現(xiàn)次數(shù)(忽略大小寫, a與A是同一個(gè)字
母),并輸出成一個(gè)字典。 例例 {'a':4,'b':2}
c.輸出a字符串出現(xiàn)頻率最高的字母
d.請(qǐng)判斷 'boy'里出現(xiàn)的每一個(gè)字母,是否都出現(xiàn)在a字符串里。如果出現(xiàn),則輸出True,否則,則輸 出False
【中級(jí)】
1.input函數(shù)每次只能輸入一個(gè)字符串,請(qǐng)實(shí)現(xiàn)如下輸入格式: 1,20,30 。然后將獲得的字符串分割,得到:三個(gè)整數(shù): 1 20 30,然后賦值給三個(gè)變量。
2.求字符串最后一個(gè)單詞的長(zhǎng)度,單詞之間用空格分割。
3.輸?一個(gè)字符串,壓縮字符串如下aabbbccccd變成a2b3c4d1
4.給定一個(gè)句子(只包含字母和空格),將句子中的單詞位置反轉(zhuǎn),單詞用空格分割, 單詞之間只有一個(gè)空格,前后沒有空格。例例如:
“hello xiao mi”-> “mi xiao hello”
5.將s = “ajldjlajfdljfddd",去重并從小到大排序輸出"adfjl"
6.使用密碼表加密
密碼表加密是一種十分常用的密碼加密方法,加密的原理是根據(jù)明文和密碼表,加密形成密文,根據(jù)密文和密碼表解密,讀出明文。密碼表可以是如下表所示:
?己設(shè)計(jì)密碼表,任意輸?一個(gè)字符串,然后顯示其密?。
總結(jié)
以上是生活随笔為你收集整理的字符串_月隐学python第7课的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android学习者优秀网址推荐
- 下一篇: RequestMapping