欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3實現(xiàn)全角和半角字符轉(zhuǎn)換的方法示例

 更新時間:2017年09月21日 11:39:24   作者:陳鵬  
在自然語言處理過程中,全角、半角的的不一致會導(dǎo)致信息抽取不一致,因此需要統(tǒng)一,下面這篇文章主要給大家介紹了關(guān)于python3中全角和半角字符轉(zhuǎn)換的方法,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要給大家介紹了關(guān)于python3中全角和半角字符轉(zhuǎn)換的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

一、背景介紹

解決什么問題:快速方便的對文本進行全角半角自動轉(zhuǎn)換

適用什么場景:學(xué)生答題數(shù)據(jù)中全角字符替換為半角字符

二、全角半角原理

全角即:Double Byte Character,簡稱DBC

半角即:Single Byte Character,簡稱SBC

在 windows 中,中文和全角字符都占兩個字節(jié),并且使用了 ascii chart 2 (codes 128–255);
全角字符的第一個字節(jié)總是被置為 163,而第二個字節(jié)則是相同半角字符碼加上128(不包括空格,全角空格和半角空格也要考慮進去);

對于中文來說,它的第一個字節(jié)被置為大于163,如'阿'為:176 162,檢測到中文時不進行轉(zhuǎn)換。

例如:半角 a 為 65,則全角 a 是 163(第一個字節(jié))、193(第二個字節(jié),128+65)。

全角半角示例:(文本 test.txt 包含全角和半角字符)

F:\test>type test.txt
123456
123456
abcdefg
abcdefg
中國你好

三、使用 Python3 實現(xiàn)全角半角轉(zhuǎn)換

# -*- coding:utf-8 -*-
# i@mail.chenpeng.info

”'
全角即:Double Byte Character,簡稱:DBC
半角即:Single Byte Character,簡稱:SBC
”'

def DBC2SBC(ustring):
 ”' 全角轉(zhuǎn)半角 ”'
 rstring = “”
 for uchar in ustring:
  inside_code = ord(uchar)
  if inside_code == 0x3000:
  inside_code = 0x0020
  else:
  inside_code -= 0xfee0
  if not (0x0021 <= inside_code and inside_code <= 0x7e):
   rstring += uchar
   continue
  rstring += chr(inside_code)
 return rstring

def SBC2DBC(ustring):
 ”' 半角轉(zhuǎn)全角 ”'
 rstring = “”
 for uchar in ustring:
  inside_code = ord(uchar)
  if inside_code == 0x0020:
  inside_code = 0x3000
  else:
  if not (0x0021 <= inside_code and inside_code <= 0x7e):
   rstring += uchar
   continue
  inside_code += 0xfee0
  rstring += chr(inside_code)
 return rstring

s = ”'
array(‘0' => ‘0', ‘1' => ‘1', ‘2' => ‘2', ‘3' => ‘3', ‘4' => ‘4',
  ‘5' => ‘5', ‘6' => ‘6', ‘7' => ‘7', ‘8' => ‘8', ‘9' => ‘9',
  ‘A' => ‘A', ‘B' => ‘B', ‘C' => ‘C', ‘D' => ‘D', ‘E' => ‘E',
  ‘F' => ‘F', ‘G' => ‘G', ‘H' => ‘H', ‘I' => ‘I', ‘J' => ‘J',
  ‘K' => ‘K', ‘L' => ‘L', ‘M' => ‘M', ‘N' => ‘N', ‘O' => ‘O',
  ‘P' => ‘P', ‘Q' => ‘Q', ‘R' => ‘R', ‘S' => ‘S', ‘T' => ‘T',
  ‘U' => ‘U', ‘V' => ‘V', ‘W' => ‘W', ‘X' => ‘X', ‘Y' => ‘Y',
  ‘Z' => ‘Z', ‘a' => ‘a(chǎn)', ‘b' => ‘b', ‘c' => ‘c', ‘d' => ‘d',
  ‘e' => ‘e', ‘f' => ‘f', ‘g' => ‘g', ‘h' => ‘h', ‘i' => ‘i',
  ‘j' => ‘j', ‘k' => ‘k', ‘l' => ‘l', ‘m' => ‘m', ‘n' => ‘n',
  ‘o' => ‘o', ‘p' => ‘p', ‘q' => ‘q', ‘r' => ‘r', ‘s' => ‘s',
  ‘t' => ‘t', ‘u' => ‘u', ‘v' => ‘v', ‘w' => ‘w', ‘x' => ‘x',
  ‘y' => ‘y', ‘z' => ‘z',
  ‘(' => ‘(‘, ‘)' => ‘)', ‘〔' => ‘[‘, ‘〕' => ‘]', ‘【' => ‘[‘,
  ‘】' => ‘]', ‘〖' => ‘[‘, ‘〗' => ‘]', ‘”‘ => ‘[‘, ‘”‘ => ‘]',
  ‘\” => ‘[‘, ‘\” => ‘]', ‘{' => ‘{‘, ‘}' => ‘}', ‘《' => ‘<‘,
  ‘》' => ‘>',
  ‘%' => ‘%', ‘+' => ‘+', ‘—' => ‘-‘, ‘-' => ‘-‘, ‘~' => ‘-‘,
  ‘:' => ‘:', ‘。' => ‘.', ‘、' => ‘,', ‘,' => ‘.', ‘、' => ‘.',
  ‘;' => ‘,', ‘?' => ‘?', ‘!' => ‘!', ‘…' => ‘-‘, ‘‖' => ‘|',
  ‘”‘ => ‘”‘, ‘\” => ‘`', ‘\” => ‘`', ‘|' => ‘|', ‘〃' => ‘”‘,
  ‘ ' => ‘ ‘);
  ”'

# 全角轉(zhuǎn)半角
print(DBC2SBC(s))

# 半角轉(zhuǎn)全角
print(SBC2DBC(s))

s = ”'中文測試”'

# 全角轉(zhuǎn)半角
print(DBC2SBC(s))

# 半角轉(zhuǎn)全角
print(SBC2DBC(s))

四、總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

五、參考資料

http://thinkerou.com/2015-06/covert-dbc-sbc/

相關(guān)文章

  • 關(guān)于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式

    關(guān)于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式

    這篇文章主要介紹了關(guān)于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python uuid生成唯一id或str的最簡單案例

    python uuid生成唯一id或str的最簡單案例

    這篇文章主要介紹了python uuid生成唯一id或str的最簡單案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Python實現(xiàn)輕松防止屏幕截圖的技巧分享

    Python實現(xiàn)輕松防止屏幕截圖的技巧分享

    屏幕截圖是一種常見的用于記錄信息或者監(jiān)控用戶活動的方法,為了保護隱私和數(shù)據(jù)安全,可以通過使用Python編寫一些防護措施來防止他人截取我們的屏幕,下面我們就來學(xué)習(xí)一下有哪些具體操作吧
    2023-12-12
  • linux中如何使用python3獲取ip地址

    linux中如何使用python3獲取ip地址

    這篇文章主要介紹了linux中如何使用python3獲取ip地址,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python學(xué)生信息管理系統(tǒng)

    python學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python學(xué)生信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python 類中引用其他類的實現(xiàn)示例

    Python 類中引用其他類的實現(xiàn)示例

    在Python中,類的引用是通過屬性或方法與其他類實例關(guān)聯(lián),實現(xiàn)復(fù)雜邏輯,本文介紹了關(guān)聯(lián)、組合等類之間的引用方式,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Python中實現(xiàn)高效的列表過濾多種方法示例

    Python中實現(xiàn)高效的列表過濾多種方法示例

    這篇文章主要給大家介紹了關(guān)于Python中實現(xiàn)高效的列表過濾的多種方法,包括基礎(chǔ)的for循環(huán)、列表推導(dǎo)式、filter函數(shù)、itertools模塊,以及高級的pandas和numpy庫,我們還討論了生成器的使用,以及在實際場景中的應(yīng)用,需要的朋友可以參考下
    2024-12-12
  • Scrapy框架介紹之Puppeteer渲染的使用

    Scrapy框架介紹之Puppeteer渲染的使用

    這篇文章主要介紹了Scrapy框架介紹之Puppeteer渲染的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python通過psd-tools解析PSD文件的實現(xiàn)

    Python通過psd-tools解析PSD文件的實現(xiàn)

    本文主要介紹了Python通過psd-tools解析PSD文件的實現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下
    2023-12-12
  • matlab中實現(xiàn)矩陣刪除一行或一列的方法

    matlab中實現(xiàn)矩陣刪除一行或一列的方法

    下面小編就為大家分享一篇matlab中實現(xiàn)矩陣刪除一行或一列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論