全角和半角转换是文本预处理的常见工作之一,然而现在网上一搜python的相关代码,几乎都是python2版本的,因此根据人角和半角的转换规律,将其代码撰写如下:

1、全角与半角之间的转换规律

角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)
半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)

  • 特殊的:

空格比较特殊,全角为 12288(0x3000),半角为 32(0x20)

除空格外,全角/半角按unicode编码排序在顺序上是对应的(半角 + 0x7e= 全角),所以可以直接通过用+-法来处理非空格数据,对空格单独处理。

2、转换代码脚本(python3)

def strQ2B(ustring):"""把字符串全角转半角"""ss = []for s in ustring:rstring = ""for uchar in s:inside_code = ord(uchar)if inside_code == 12288:  # 全角空格直接转换inside_code = 32elif (inside_code >= 65281 and inside_code <= 65374):  # 全角字符(除空格)根据关系转化inside_code -= 65248rstring += chr(inside_code)ss.append(rstring)return ''.join(ss)
def strB2Q(ustring):"""把字符串全角转半角"""ss = []for s in ustring:rstring = ""for uchar in s:inside_code = ord(uchar)if inside_code == 32:  # 全角空格直接转换inside_code = 12288elif (inside_code >= 33 and inside_code <= 126):  # 全角字符(除空格)根据关系转化inside_code += 65248rstring += chr(inside_code)ss.append(rstring)return ''.join(ss)if __name__ == '__main__':a = strB2Q("你好pythonabdalduizxcvbnm")print(a)b = strQ2B(a)print(b)

测试:得到的结果如下所示:

你好pythonabdalduizxcvbnm
你好pythonabdalduizxcvbnm

python3环境下的全角与半角转换代码和测试相关推荐

  1. 【字符转换】——全角和半角转换

    背景 在我们使用搜狗输入法的时候会有全角和半角的切换,首先看一下这两者的区别吧 全角,指一个字符占用两个标准字符位置的状态,也是排字的度量单位,宽度等于所使用的文字的磅数汉. 半角,即一个字符占用一个 ...

  2. php 半角全角,PHP 全角转半角实现代码

    将一个字串中含有全角的数字字符.字母.空格或'%+-()'字符转换为相应半角字符 /** * 将一个字串中含有全角的数字字符.字母.空格或'%+-()'字符转换为相应半角字符 * @access pu ...

  3. 英文字母间隔突然增大(全角与半角转换)

    导致后果:在部分限制格式的输入框中,没办法正常输入字符数字,且使得输入内容不美观 原因:用户偶然间将字符全角转换成了半角 那什么是全角和半角呢? 全角:指一个字符占用两个标准字符位置的状态,字母和数字 ...

  4. python中英文半角还是全角_Python3全角转半角的方法

    相信大家都对全角半角的概念已经有所了解了.中文文字永远是全角,只有英文字母.数字键.符号键才有全角半角的概念,一个字母或数字占一个汉字的位置叫全角,占半个汉字的位置叫半角.标点符号在中英文状态下.全半 ...

  5. sql select半角html全角,SQL转换全角和半角函数

    SQL转换全角和半角函数 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全 ...

  6. 半角和全角的区别 java_全角和半角的区别是什么

    全角和半角的主要区别是输入效果不一样.字体宽度不一样.所占字节不一样.全角在输入时字母会变粗变大,它会占用两个字节,而半角的字体要更窄,它只占用一个字节,如果用半角和全角分别输入一串数字,就可以明显的 ...

  7. Python实现全角与半角相互转换

    全角与半角转换在处理汉语语料中会经常出现,这里分别说明汉字.数字.字母的unicode编码范围.以及全角与半角的转换方法.最后给出wiki上全角和半角的编码对照表.这里Python需要用Python3 ...

  8. PHP全角和半角字符怎么区分,学习猿地-php如何实现全角符号转半角

    php实现全角符号转半角的方法:首先创建一个PHP示例文件:然后定义一个"SBC_DBC($str,$args2=1) {...}"方法:最后通过"str_replace ...

  9. 正则下,全角字符,半角字符如何匹配

    正常的开发情况下,我们很多情况下,都会碰到匹配数字字母的情况.我们可以如下的写法: [0-9] 匹配数字 [a-zA-Z] 匹配字母 [\w] 匹配字母数字下划线 [\w^\_] 匹配字母数字 正常情 ...

最新文章

  1. static String valueOf(XXX xxx)
  2. led显示屏背景墙设计_室内LED 显示屏室内安装设计
  3. python的使用说明_Python 的基本使用说明
  4. 数据安全治理的几个基本问题
  5. 【git】git提交忽略不必要的文件或文件夹
  6. Android 窗口全屏
  7. 腾讯云分布式高可靠消息队列CMQ架构最佳实践
  8. 【Lingo】线性规划
  9. 教室录播系统方案_录播教室技术解决方案
  10. 2019风向趋势分析报告——覆盖5G、人工智能、金融科技等领域
  11. 什么是顶级域名,二级域名和三级域名
  12. Ngnix 搭建视频直播服务器
  13. 6. update更新数据的4种方法
  14. 工业互联网平台核心技术之一:数据集成与边缘处理技术
  15. OOzie 入门 【转】
  16. mysql: load data与select into outfile
  17. 推荐几款高性价比电机驱动芯片
  18. 【MyBatis-Plus】CRUD 操作
  19. 在国内市场,外汇到底能不能做?外汇合法吗?
  20. ViewPager简单介绍(一)

热门文章

  1. 水果超市-用JavaWeb写的新手练手项目
  2. 同济大学官网静态网页图
  3. OneToOne注解 javax.persistence.OneToMany.orphanRemoval()Z错误
  4. Flink程序加载数据源(3)自定义数据源(2)从Mysql 加载数据源
  5. Silverlight 2.5D RPG游戏技巧与特效处理:(十三)资源动态下载组件
  6. 基于Autoware制作高精地图(三)
  7. WSAStartup与WSACleanup
  8. 网络存储技术Windows Server 2012(汇总目录)
  9. 畅游无线游戏盒子(一)--走迷宫
  10. Flash player 开源 、安全、高效、简洁 解决方案