全角和半角转换是文本预处理的常见工作之一,然而现在网上一搜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. 没想到这家聪明的公司,正在用AIoT让机器对话
  2. 22、Power Query-文本字符的精确提取
  3. 04-课后作业1-字符串加密
  4. 跟着“土牛”学架构知识
  5. Spring 3.1缓存和@CacheEvict
  6. 2017年Spring发布了30个新的Android库,值得您关注
  7. 论文浅尝 | CoRR - 面向复杂知识问答的框架语义解析方法
  8. dedemonkey下载_android压力测试命令monkey详解
  9. centos 安装mysql5.6.12_CentOS6.4+MySQL-5.6.12 安装详解
  10. Linux 实用工具vi
  11. Mysql个人学习笔记
  12. 数据结构 —— 静态链表
  13. 双摄像头另一个有什么用_手机双摄像头为什么有前后和后双两种?各有什么用?...
  14. 数据结构实验八 图及其应用
  15. 淘宝新店一个流量没有如何是好
  16. 乐学python_乐学Python-中国大学mooc-试题题目及答案
  17. linux java jdk环境变量设置之后,依旧提示 No such file or directory
  18. 50岁的程序员还奋战一线,软件测试能干到多少岁?有年龄限制吗?
  19. Glide 图片闪烁问题
  20. java获取MP3文件的id3信息(包括封面图,歌词,艺术家,标题等)

热门文章

  1. Python遥感图像处理基础篇(二):arcpy遥感图像裁剪批量处理
  2. 用了 TCP 协议,数据一定不会丢吗?
  3. 对安全研究人员和渗透测试人员有用的Firefox 插件
  4. 现代软件工程 第一章 【概论】第2题——孙雪莹
  5. css 实现倒计时转圈动画
  6. 2016域控服务器迁移,WIN Server2016 域服务器迁移出错
  7. SpringBoot集成JMH进行基准测试
  8. Webpack 概念
  9. 辟谣 | 爬虫软件真的可以获取隐私数据?真相只有一个
  10. 《Linux/Unix设计思想:软件的杠杆效应》读后感