ホームページ > バックエンド開発 > Python チュートリアル > Pythonで全角と半角の変換を実装する方法

Pythonで全角と半角の変換を実装する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:42:48
オリジナル
2312 人が閲覧しました

この記事の例は、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

ログイン後にコピー

興味のある友人はデバッグして実行できます。何らかの利益があると思います。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート