字符串操作、文件操作,英文詞頻統計預處理
阿新 • • 發佈:2019-03-08
ews 行政區劃 format bcd ignore hat 密碼 clas 串操作
1.字符串操作:
- 解析身份證號:生日、性別、出生地等。
- 凱撒密碼編碼與解碼
- 網址觀察與批量生成
(1)解析身份證號:
ID = input(‘請輸入十八位身份證號碼: ‘) if len(ID) == 18: print("你的身份證號碼是 " + ID) else: print("錯誤的身份證號碼") ID_add = ID[0:6] ID_birth = ID[6:14] ID_sex = ID[14:17] ID_check = ID[17] # ID_add是身份證中的區域代碼,如果有一個行政區劃代碼字典,就可以用獲取大致地址# print("出生地為:"+ID_add) year = ID_birth[0:4] moon = ID_birth[4:6] day = ID_birth[6:8] print("生日: " + year + ‘年‘ + moon + ‘月‘ + day + ‘日‘) if int(ID_sex) % 2 == 0: print(‘性別:女‘) else: print(‘性別:男‘) # 此部分應為錯誤判斷,如果錯誤就不應有上面的輸出,如何實現?# W = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] ID_num = [18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2] ID_CHECK = [‘1‘, ‘0‘, ‘X‘, ‘9‘, ‘8‘, ‘7‘, ‘6‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘] ID_aXw = 0 for i in range(len(W)): ID_aXw = ID_aXw + int(ID[i]) * W[i] ID_Check = ID_aXw % 11 if ID_check == ID_CHECK[ID_Check]: print(‘正確的身份證號碼‘) else: print(‘錯誤的身份證號碼‘)
解析結果:
(2)凱撒密碼編碼與解碼
plaincode=input(‘letter:‘) for i in plaincode: print(chr(ord(i)+3),end=‘‘)
結果:
(3)網址觀察與批量生成
for i in range(2,10): url=‘http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html‘.format(i) print(url)
打開網址:
import webbrowser as web url=‘http://news.gzcc.cn/html/xiaoyuanxinwen/‘ web.open_new_tab(url) for i in range(2,4): web.open_new_tab(‘http://news.gzcc.cn/html/xiaoyuanxinwen/‘+str(i)+‘.html‘)
網址觀察結果:
2.英文詞頻統計預處理
- 下載一首英文的歌詞或文章或小說。
- 將所有大寫轉換為小寫
- 將所有其他做分隔符(,.?!)替換為空格
- 分隔出一個一個的單詞
- 並統計單詞出現的次數。
代碼:
str=‘‘‘I‘m a big, big girl in a big, big world It‘s not a big, big thing if you leave me But I do, do feel that I do, do will miss you much Miss you much ‘‘‘ str=str.lower() s=‘,.!?‘ for c in s: str = str.replace(c, "") print(str.split()) print(str.count(‘big‘))
結果:
3.文件操作
- 同一目錄、絕對路徑、相對路徑
- 凱撒密碼:從文件讀入密函,進行加密或解密,保存到文件。
- 詞頻統計:下載一首英文的歌詞或文章或小說,保存為utf8文件。從文件讀入文本進行處理。
同一目錄讀文件代碼:
f=open(‘yw.txt‘,‘r‘,encoding=‘utf8‘) text=f.read() f.close() print(text)
絕對路徑讀文件代碼:
f=open(r‘C:\Users\Administrator\PycharmProjects\bd\venv\lj\xd.txt‘,‘r‘,encoding=‘utf8‘) text=f.read() f.close() print(text)
相對路徑讀文件代碼:
f=open(r‘..\venv\lj\xd.txt‘,‘r‘,encoding=‘utf8‘) text=f.read() f.close() print(text)
讀取文件內容結果:
凱撒密碼:
file=open("caesar.txt") caesar=file.read() print("加密前的密碼:",caesar) cipher=‘‘; jiemi=‘‘; for i in caesar: cipher=cipher+chr(ord(i)+3); print("加密後的密碼:",cipher) file=open("cipher.txt",‘w‘) file.write(cipher) file.close()
加密結果:
加密前文件:
加密後文件:
4.函數定義
- 加密函數
-
def get_text(): plaincode = ‘abcd‘ cipher=‘‘ for i in plaincode: cipher=cipher+chr(ord(i) + 3) return cipher bigstr = get_text() print(bigstr)
- 解密函數
-
def get_text(): plaincode = ‘defg‘ cipher=‘‘ for i in plaincode: cipher=cipher+chr(ord(i) -3) return cipher bigstr = get_text() print(bigstr)
- 讀文本函數
-
def get_text(): with open(‘yw.txt‘, ‘r‘, encoding=‘utf8‘,errors=‘ignore‘) as f: text = f.read() return text bigstr = get_text() print(bigstr)
字符串操作、文件操作,英文詞頻統計預處理