1. 程式人生 > >Python_字符串的映射與可變字符串的應用

Python_字符串的映射與可變字符串的應用

ble 實現 replace code 數字 sdi 插入字符 pytho 查看

 1 ‘‘‘
 2 maketrans()、translate()
 3 maketrans()方法用來生成字符映射表,而translate()方法則按映射表中定義的對應關系轉換並替換其中的字符,使用這兩個方法的組合可以
 4 同時處理多個不同的字符,replace()方法則無法滿足這一要求。
 5 ‘‘‘
 6 #創建映射表,將字符‘abcdef123‘一一地轉換為‘uvwxyz@#$‘
 7 table=‘‘.maketrans(abcdef123,uvwxyz@#$)
 8 s2 = Python is a greate programming language.I like it 123!
9 print(s2.translate(table)) 10 # Python is u gryuty progrumming lunguugy.I liky it @#$! 11 12 #模擬凱撒加密 13 #每個英文字母替換為字母表中後面第3個字母,當然,也可以是其他數字 14 import string 15 lowerLetters=string.ascii_lowercase 16 upLetters=string.ascii_uppercase 17 before=lowerLetters+upLetters 18 print(before) 19 # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
20 #循環移位 21 after=lowerLetters[3:]+lowerLetters[:3] + upLetters[3:]+upLetters[:3] 22 print(after) 23 # defghijklmnopqrstuvwxyzabcDEFGHIJKLMNOPQRSTUVWXYZABC 24 #創建字符轉換表,將英文字母替換為該字母後面第3個字母 25 table1=‘‘.maketrans(before,after) 26 example=If the implementation is easy to explain,it may be a good idea.
27 print(example.translate(table1)) 28 # Li wkh lpsohphqwdwlrq lv hdvb wr hasodlq,lw pdb eh d jrrg lghd. 29 30 #Python標準庫中的string提供了英文字母大小寫、數字字符、標點符號等常量,可以直接使用,下面的代碼實現隨機密碼生成功能 31 import string 32 x=string.digits+string.ascii_letters+string.punctuation #可能字符集 33 print(x) 34 # 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&‘()*+,-./:;<=>?@[\]^_`{|}~ 35 print(string.digits) 36 # 0123456789 37 print(string.ascii_letters) 38 # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 39 print(string.punctuation) 40 # !"#$%&‘()*+,-./:;<=>?@[\]^_`{|}~ 41 import random 42 print(‘‘.join([random.choice(x) for i in range(8)])) #隨機選取8個字符 43 44 ‘‘‘ 45 在Python中,字符串屬於不可變對象,不支持原地修改,如果需要修改其中的值,只能重新創建一個新的字符串對象。 46 然而,如果確實需要一個支持原地修改的unicode數據對象,可以使用io.StringIO對象或array模塊. 47 ‘‘‘ 48 from io import StringIO 49 s3=Hello world 50 sio=StringIO(s3) #創建可變字符串對象 51 print(sio) 52 # <_io.StringIO object at 0x101ba5d38> 53 print(sio.tell()) #返回當前位置 54 # 0 55 print(sio.read()) #從當前位置開始讀取字符串 56 # Hello world 57 print(sio.getvalue()) #返回可變字符串的全部內容 58 # Hello world 59 print(sio.tell()) 60 # 11 61 sio.seek(6) #重新定位當前位置 62 sio.write(SDIBT) #從當前位置開始寫入字符串 63 print(sio.read()) 64 # ‘‘ 65 print(sio.getvalue()) 66 # Hello SDIBT 67 print(sio.tell()) 68 # 11 69 s3=Hello world 70 from array import array 71 sa=array(u,s3) 72 print(sa) 73 # array(‘u‘, ‘Hello world‘) 74 print(sa.tostring()) #查看可變字符串對象的內容 75 # b‘H\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00 \x00\x00\x00w\x00\x00\x00o\x00\x00\x00r\x00\x00\x00l\x00\x00\x00d\x00\x00\x00‘ 76 print(sa.tounicode()) #查看可變字符串對象的內容 77 # Hello world 78 sa[0] = F #修改指定位置上的字符 79 print(sa) 80 # array(‘u‘, ‘Fello world‘) 81 sa.insert(5,w) #在指定位置插入字符 82 print(sa) 83 # array(‘u‘, ‘Fellow world‘) 84 sa.remove(l) #刪除指定字符的首次出現 85 print(sa) 86 # array(‘u‘, ‘Felow world‘)

Python_字符串的映射與可變字符串的應用