Python实现全角半角转换的方法


Posted in Python onAugust 18, 2014

本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值。如下所示:

一、全角半角转换概述:

全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)
半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)
空格比较特殊,全角为 12288(0x3000),半角为 32 (0x20)
而且除空格外,全角/半角按unicode编码排序在顺序上是对应的
所以可以直接通过用+-法来处理非空格数据,对空格单独处理

二、全角转半角:

实现代码如下:

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

三、半角转全角:

实现代码如下:

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

四、测试代码:

a = strB2Q("abc12345")
print a
b = strQ2B(a)
print b

输出:

abc12345
abc12345

感兴趣的朋友可以调试运行一下,相信会有一定的收获。

Python 相关文章推荐
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 Python
Python中%r和%s的详解及区别
Mar 16 Python
python+opencv实现阈值分割
Dec 26 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
python如何制作英文字典
Jun 25 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
pycharm的python_stubs问题
Apr 08 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
Python实现冒泡,插入,选择排序简单实例
Aug 18 #Python
Python算法之栈(stack)的实现
Aug 18 #Python
Python实现partial改变方法默认参数
Aug 18 #Python
Python实现发送email的几种常用方法
Aug 18 #Python
Python内置数据类型详解
Aug 18 #Python
Python3基础之输入和输出实例分析
Aug 18 #Python
一个计算身份证号码校验位的Python小程序
Aug 15 #Python
You might like
php 文章采集正则代码
2009/12/28 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
php格式文件打开的四种方法
2018/02/24 PHP
JS 控制CSS样式表
2009/08/20 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
Django 多语言教程的实现(i18n)
2018/07/07 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python计算导数并绘图的实例
2020/02/29 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
总经理职责
2013/12/22 职场文书
大学生实习证明范本
2014/01/15 职场文书
干部培训自我鉴定
2014/01/22 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
高中生评语大全
2014/04/25 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
用电申请报告范文
2015/05/18 职场文书