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中zip()函数用法实例教程
Jul 31 Python
Python实现图像几何变换
Jul 06 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python实现全排列的打印
Aug 18 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
python help函数实例用法
Dec 06 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 冒泡排序 交换排序法
2011/05/10 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php实现图片压缩处理
2020/09/09 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
用Python遍历C盘dll文件的方法
2015/05/06 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python-opencv 双线性插值实例
2020/01/17 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
Python图片验证码降噪和8邻域降噪
2021/08/30 Python