python如何實(shí)現(xiàn)全角半角的相互轉(zhuǎn)換
轉(zhuǎn)換說(shuō)明
全角半角轉(zhuǎn)換說(shuō)明
有規(guī)律(不含空格):
- 全角字符unicode編碼從65281~65374 (十六進(jìn)制 0xFF01 ~ 0xFF5E)
- 半角字符unicode編碼從33~126 (十六進(jìn)制 0x21~ 0x7E)
特例
空格比較特殊,全角為 12288(0x3000),半角為 32(0x20)
# 正則直接把全角空格替換為半角空格 text2 = re.sub('\s+', ' ', str1)
除空格外,全角/半角按unicode編碼排序在順序上是對(duì)應(yīng)的(半角 + 0x7e= 全角),所以可以直接通過(guò)用+-法來(lái)處理非空格數(shù)據(jù),對(duì)空格單獨(dú)處理。
注:
- 中文文字永遠(yuǎn)是全角,只有英文字母、數(shù)字鍵、符號(hào)鍵才有全角半角的概念,
- 一個(gè)字母或數(shù)字占一個(gè)漢字的位置叫全角,占半個(gè)漢字的位置叫半角。
字符串整個(gè)替換
def strQ2B(ustring): """全角轉(zhuǎn)半角""" rstring = "" for uchar in ustring: inside_code = ord(uchar) print(inside_code) if inside_code == 12288: # 全角空格直接轉(zhuǎn)換 inside_code = 32 elif 65281 <= inside_code <= 65374: # 全角字符(除空格)根據(jù)關(guān)系轉(zhuǎn)化 inside_code -= 65248 rstring += unichr(inside_code) return rstring def strB2Q(ustring): """半角轉(zhuǎn)全角""" rstring = "" for uchar in ustring: inside_code = ord(uchar) if inside_code == 32: # 半角空格直接轉(zhuǎn)化 inside_code = 12288 elif 32 <= inside_code <= 126: # 半角字符(除空格)根據(jù)關(guān)系轉(zhuǎn)化 inside_code += 65248 rstring += unichr(inside_code) return rstring
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python學(xué)習(xí)之集合的常用方法總結(jié)
集合并不是一種數(shù)據(jù)處理類型,而是一種中間類型。集合(set)是一個(gè)無(wú)序、不重復(fù)的元素序列,經(jīng)常被用來(lái)處理兩個(gè)列表進(jìn)行交并差的處理性。本文將詳細(xì)講解集合的一些常用方法,感興趣的可以了解一下2022-03-03Pytorch實(shí)現(xiàn)的手寫數(shù)字mnist識(shí)別功能完整示例
這篇文章主要介紹了Pytorch實(shí)現(xiàn)的手寫數(shù)字mnist識(shí)別功能,結(jié)合完整實(shí)例形式分析了Pytorch模塊手寫字識(shí)別具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Python 3中print函數(shù)的使用方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Python 3中print函數(shù)的使用方法,python3中的print函數(shù)和之前版本的用法相差很多,本文通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-08-08利用Python的tkinter模塊實(shí)現(xiàn)界面化的批量修改文件名
這篇文章主要介紹了利用Python的tkinter模塊實(shí)現(xiàn)界面化的批量修改文件名,用Python編寫過(guò)批量修改文件名的腳本程序,代碼很簡(jiǎn)單,運(yùn)行也比較快,詳細(xì)內(nèi)容需要的小伙伴可以參考一下下面文章內(nèi)容2022-08-08python中關(guān)于CIFAR10數(shù)據(jù)集的使用
這篇文章主要介紹了python中關(guān)于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02使用Python IDLE進(jìn)行Debug調(diào)試的圖文步驟
本文主要介紹了使用Python IDLE進(jìn)行Debug調(diào)試的圖文步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02