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序列之list和tuple常用方法以及注意事项
Jan 09 Python
机器学习10大经典算法详解
Dec 07 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python中asyncio模块的深入讲解
Jun 10 Python
Python实现最常见加密方式详解
Jul 13 Python
python系列 文件操作的代码
Oct 06 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
python解析json数据
Apr 29 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
thinkphp模板输出技巧汇总
2014/11/24 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
使用PDB简单调试Python程序简明指南
2015/04/25 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python3处理word文档实例分析
2020/12/01 Python
如何用python批量调整视频声音
2020/12/22 Python
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
市场部专员岗位职责
2013/11/30 职场文书
入团者的自我评价分享
2013/12/02 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
可口可乐广告词
2014/03/20 职场文书
行政求职信
2014/07/04 职场文书
社会工作专业自荐信
2014/09/26 职场文书
琅琊山导游词
2015/02/05 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书