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