python3环境下的全角与半角转换代码和测试
全角和半角转换是文本预处理的常见工作之一,然而现在网上一搜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环境下的全角与半角转换代码和测试相关推荐
- 【字符转换】——全角和半角转换
背景 在我们使用搜狗输入法的时候会有全角和半角的切换,首先看一下这两者的区别吧 全角,指一个字符占用两个标准字符位置的状态,也是排字的度量单位,宽度等于所使用的文字的磅数汉. 半角,即一个字符占用一个 ...
- php 半角全角,PHP 全角转半角实现代码
将一个字串中含有全角的数字字符.字母.空格或'%+-()'字符转换为相应半角字符 /** * 将一个字串中含有全角的数字字符.字母.空格或'%+-()'字符转换为相应半角字符 * @access pu ...
- 英文字母间隔突然增大(全角与半角转换)
导致后果:在部分限制格式的输入框中,没办法正常输入字符数字,且使得输入内容不美观 原因:用户偶然间将字符全角转换成了半角 那什么是全角和半角呢? 全角:指一个字符占用两个标准字符位置的状态,字母和数字 ...
- python中英文半角还是全角_Python3全角转半角的方法
相信大家都对全角半角的概念已经有所了解了.中文文字永远是全角,只有英文字母.数字键.符号键才有全角半角的概念,一个字母或数字占一个汉字的位置叫全角,占半个汉字的位置叫半角.标点符号在中英文状态下.全半 ...
- sql select半角html全角,SQL转换全角和半角函数
SQL转换全角和半角函数 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全 ...
- 半角和全角的区别 java_全角和半角的区别是什么
全角和半角的主要区别是输入效果不一样.字体宽度不一样.所占字节不一样.全角在输入时字母会变粗变大,它会占用两个字节,而半角的字体要更窄,它只占用一个字节,如果用半角和全角分别输入一串数字,就可以明显的 ...
- Python实现全角与半角相互转换
全角与半角转换在处理汉语语料中会经常出现,这里分别说明汉字.数字.字母的unicode编码范围.以及全角与半角的转换方法.最后给出wiki上全角和半角的编码对照表.这里Python需要用Python3 ...
- PHP全角和半角字符怎么区分,学习猿地-php如何实现全角符号转半角
php实现全角符号转半角的方法:首先创建一个PHP示例文件:然后定义一个"SBC_DBC($str,$args2=1) {...}"方法:最后通过"str_replace ...
- 正则下,全角字符,半角字符如何匹配
正常的开发情况下,我们很多情况下,都会碰到匹配数字字母的情况.我们可以如下的写法: [0-9] 匹配数字 [a-zA-Z] 匹配字母 [\w] 匹配字母数字下划线 [\w^\_] 匹配字母数字 正常情 ...
最新文章
- 没想到这家聪明的公司,正在用AIoT让机器对话
- 22、Power Query-文本字符的精确提取
- 04-课后作业1-字符串加密
- 跟着“土牛”学架构知识
- Spring 3.1缓存和@CacheEvict
- 2017年Spring发布了30个新的Android库,值得您关注
- 论文浅尝 | CoRR - 面向复杂知识问答的框架语义解析方法
- dedemonkey下载_android压力测试命令monkey详解
- centos 安装mysql5.6.12_CentOS6.4+MySQL-5.6.12 安装详解
- Linux 实用工具vi
- Mysql个人学习笔记
- 数据结构 —— 静态链表
- 双摄像头另一个有什么用_手机双摄像头为什么有前后和后双两种?各有什么用?...
- 数据结构实验八 图及其应用
- 淘宝新店一个流量没有如何是好
- 乐学python_乐学Python-中国大学mooc-试题题目及答案
- linux java jdk环境变量设置之后,依旧提示 No such file or directory
- 50岁的程序员还奋战一线,软件测试能干到多少岁?有年龄限制吗?
- Glide 图片闪烁问题
- java获取MP3文件的id3信息(包括封面图,歌词,艺术家,标题等)