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编写分析Python程序性能的工具的教程
Apr 01 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
Python温度转换实例分析
Jan 17 Python
详解python中的线程
Feb 10 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 Python
python程序的组织结构详解
Dec 06 Python
Python实现批量自动整理文件
Mar 16 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判断手机访问还是电脑访问示例分享
2014/01/20 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
python中字典增加和删除使用方法
2020/09/30 Python
Python实现自动装机功能案例分析
2020/10/22 Python
Python可以用来做什么
2020/11/23 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
C#面试问题
2016/07/29 面试题
土木工程专业个人求职信
2013/12/30 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
网吧管理制度范本
2015/08/05 职场文书
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技