字符串_月隱學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.使用密碼錶加密
密碼錶加密是一種十分常用的密碼加密方法,加密的原理是根據明文和密碼錶,加密形成密文,根據密文和密碼錶解密,讀出明文。密碼錶可以是如下表所示:

⾃己設計密碼錶,任意輸⼊一個字符串,然後顯示其密⽂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章