1. 程式人生 > >字符串操作、文件操作,英文詞頻統計預處理

字符串操作、文件操作,英文詞頻統計預處理

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)
    

      

字符串操作、文件操作,英文詞頻統計預處理