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实现在线程里运行scrapy的方法
Apr 07 Python
Python的Flask框架中web表单的教程
Apr 20 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
python读取xlsx的方法
Dec 25 Python
Pytorch中index_select() 函数的实现理解
Nov 19 Python
keras之权重初始化方式
May 21 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
python输入中文的实例方法
Sep 14 Python
python 获取字典键值对的实现
Nov 12 Python
Python turtle编写简单的球类小游戏
Mar 31 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 Python
Python基本的内置数据类型及使用方法
Apr 13 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学习之PHP表达式
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript中的return和闭包函数浅析
2014/06/06 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
python可视化实现KNN算法
2019/10/16 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Python模块相关知识点小结
2020/03/09 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
武汉瑞得软件笔试题
2015/10/27 面试题
中秋晚会活动方案
2014/08/31 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
2014年就业工作总结
2014/11/26 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS