ホームページ >バックエンド開発 >Python チュートリアル >Pythonで全角と半角の変換を実装する方法
この記事の例は、Python で全角と半角の変換を実現する方法を説明したものであり、皆様の Python 学習の参考になると思います。以下に示すように:
1. 全角と半角の変換の概要:
全角文字 Unicode エンコーディング 65281~65374 (16 進数 0xFF01~0xFF5E)
半角文字 Unicode エンコード 33~126 (16 進数 0x21~0x7E)
スペースは特殊で、全角は12288(0x3000)、半角は32(0x20)です
また、スペースを除き、Unicodeに従った全角/半角エンコードの順序は対応しています
したがって、 +- メソッドを直接使用して非スペース データを処理し、スペースを個別に処理できます
2. 全角→半角:
実装コードは次のとおりです:
def strQ2B(ustring): """把字符串全角转半角""" rstring = "" for uchar in ustring: inside_code=ord(uchar) if inside_code==0x3000: inside_code=0x0020 else: inside_code-=0xfee0 if inside_code<0x0020 or inside_code>0x7e: #转完之后不是半角字符返回原来的字符 rstring += uchar rstring += unichr(inside_code) return rstring
3. 半角から全角へ:
実装コードは次のとおりです:
def strB2Q(ustring): """把字符串半角转全角""" rstring = "" for uchar in ustring: inside_code=ord(uchar) if inside_code<0x0020 or inside_code>0x7e: #不是半角字符就返回原来的字符 rstring += uchar if inside_code==0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0 inside_code=0x3000 else: inside_code+=0xfee0 rstring += unichr(inside_code) return rstring
4. テストコード:
a = strB2Q("abc12345") print a b = strQ2B(a) print b
出力:
abc12345 abc12345
興味のある友人はデバッグして実行できます。何らかの利益があると思います。