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 基础学习教程
Feb 08 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python使用pycharm环境调用opencv库
Feb 11 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
Aug 07 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
python爬虫库scrapy简单使用实例详解
Feb 10 Python
使用keras根据层名称来初始化网络
May 21 Python
Keras之fit_generator与train_on_batch用法
Jun 17 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
html超链接打开窗口大小的方法
2013/03/05 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
js里面的变量范围分享
2020/07/18 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
深入理解Python装饰器
2016/07/27 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python实现求数列和的方法示例
2018/01/12 Python
python 实现登录网页的操作方法
2018/05/11 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
Python高级property属性用法实例分析
2019/11/19 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Python字典实现伪切片功能
2020/10/28 Python
Java多态性的定义以及类型
2014/09/16 面试题
行政人员岗位职责
2013/12/08 职场文书
学生干部培训方案
2014/06/12 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
法院答辩状格式
2015/05/22 职场文书
驻村工作简报
2015/07/20 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS