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简单计算文件夹大小的方法
Jul 14 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
python构建深度神经网络(DNN)
Mar 10 Python
Django实现分页功能
Jul 02 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
Python的Lambda函数用法详解
Sep 03 Python
PHP统计代码行数的小代码
Sep 19 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python 日期与时间转换的方法
Aug 01 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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中smarty模板条件判断用法实例
2015/06/11 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
jQuery each()小议
2010/03/18 Javascript
JS重要知识点小结
2011/11/06 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
python实现Zabbix-API监控
2018/09/17 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
护理职业应聘自荐书
2013/09/29 职场文书
读书活动总结
2014/04/28 职场文书
美术教师求职信范文
2015/03/20 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript