利用python3随机生成中文字符的实现方法


Posted in Python onNovember 24, 2017

前言

运行环境在Python3.6下,Python2的解决方案网上有很多.,想学习python2实现的朋友们可以参考这篇文章:https://3water.com/article/34884.htm,下面来一起看看详细的介绍吧。

第一种方法:Unicode码

在unicode码中,汉字的范围是(0x4E00, 9FBF)

import random

def Unicode():
 val = random.randint(0x4e00, 0x9fbf)
 return chr(val)

这个方法比较简单,但是有个小问题,unicode码中收录了2万多个汉字,包含很多生僻的繁体字.

第二种方法:GBK2312

gbk2312对字符的编码采用两个字节相组合,第一个字节的范围是0xB0-0xF7, 第二个字节的范围是0xA1-0xFE.
对GBK2312编码方式详细的解释请参看GBK2312编码

import random

def GBK2312():
 head = random.randint(0xb0, 0xf7)
 body = random.randint(0xa1, 0xfe)
 val = f'{head:x}{body:x}'
 str = bytes.fromhex(val).decode('gb2312')
 return str

GBK2312收录了6千多常用汉字.两种方法的取舍就看需求了.

下面来给大家详细介绍下关于Python基础知识之encode和decode函数的相关内容,通过下面的简单介绍,对大家理解上面的实现方法具有一定的参考价值,下面来一起看看吧。

ptyhon encode和decode函数

Python2.x中默认的编码的基础类型是unicode编码的类型,在Python3.x才转化为基于unicode的字符串。
那么我们在Python2.x的学习中就会遇到各种各样的编码问题,encode和decode函数就是很好的帮我们解决这样问题的工具。
下面的程序中有详细的介绍和例子!~

在Python2.x中:

u = u'中文' #显示指定unicode类型对象u 
str = u.encode('gb2312') #以gb2312编码对unicode对像进行编码 
str1 = u.encode('gbk') #以gbk编码对unicode对像进行编码 
str2 = u.encode('utf-8') #以utf-8编码对unicode对像进行编码 
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,以获取unicode 
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的unicode类型

在Python3.x中:

u = '中文' #指定字符串类型对象u 
str = u.encode('gb2312') #以gb2312编码对u进行编码,获得bytes类型对象str 
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,获得字符串类型对象u1 
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的字符串内容

但是我们在读取、写入文件的时候就要注意以文件的格式来判断用什么方式来操作了,txt文件默认都是utf-8当然你也可以自己设定编码格式。

我们在对txt文件进行操作时,最好都将编码格式转化为utf-8来方便操作吧!~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。  

Python 相关文章推荐
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
python实现k-means聚类算法
Feb 23 Python
Python requests发送post请求的一些疑点
May 20 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python reverse反转部分数组的实例
Dec 13 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
python实现定时压缩指定文件夹发送邮件
Dec 22 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
完美处理python与anaconda环境变量的冲突问题
Apr 07 Python
Python内置函数 next的具体使用方法
Nov 24 #Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 #Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 #Python
Python内置函数——__import__ 的使用方法
Nov 24 #Python
Django中login_required装饰器的深入介绍
Nov 24 #Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 #Python
pip安装Python库时遇到的问题及解决方法
Nov 23 #Python
You might like
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
php自定义分页类完整实例
2015/12/25 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python实现汉诺塔方法汇总
2016/07/25 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
利用Python优雅的登录校园网
2020/10/21 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
建议书标准格式
2014/03/12 职场文书
推荐信格式范文
2014/05/09 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
党在我心中演讲稿
2014/09/02 职场文书
开会通知
2015/04/20 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
毕业生政审意见范文
2015/06/04 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
React Fragment介绍与使用详解
2021/11/11 Javascript
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers