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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
下载给定网页上图片的方法
Feb 18 Python
python 七种邮件内容发送方法实例
Apr 22 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python 随机打乱 图片和对应的标签方法
Dec 14 Python
Python3简单实现串口通信的方法
Jun 12 Python
python输入错误后删除的方法
Oct 12 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
配置支持SSI
2006/11/25 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python3基于TCP实现CS架构文件传输
2018/07/28 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
python使用minimax算法实现五子棋
2019/07/29 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
采购主管岗位职责
2014/02/01 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
2014年公司工作总结
2014/11/22 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
校运会加油稿大全
2015/07/22 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技