python中文昵称-python3随机生成中文字符(随机生成两字或三字的名字)
第一种方法: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, 0xf9) # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围
val = f'{head:x}{body:x}'
str = bytes.fromhex(val).decode('gb2312')
return str
需求:随机生成两字或三字的名字
思路1:姓后面的第一个名,用数组随机取数,数组第一个数据为随机的中文字符(调用上述函数),第二个数据为空字符,随机取数取到空字符就是两字名字,取到非空字符就是三字名字
思路2:for循环生成中文字符的函数,然后进行str拼接,循环次数为随机生成[1-2]随机整数,随机到1,则为二字名字,随机到2,则为三字名字(4字名字类推)
思路1代码:
import random
def GBK2312():
head = random.randint(0xb0, 0xf7)
body = random.randint(0xa1, 0xf9) # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围
val = f'{head:x}{body:x}'
st = bytes.fromhex(val).decode('gb2312')
return st
def first_name(): # 随机取姓氏字典
first_name_list = [
'赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
'何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
'云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
'姚', '邵', '堪', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
'熊', '纪', '舒', '屈', '项', '祝', '董', '梁']
n = random.randint(0, len(first_name_list) - 1)
f_name = first_name_list[n]
return f_name
def second_name():
# 随机取数组中字符,取到空字符则没有second_name
second_name_list = [GBK2312(), '']
n = random.randint(0, 1)
s_name = second_name_list[n]
return s_name
def last_name():
return GBK2312()
def create_name():
name = first_name() + second_name() + last_name()
return name
print(create_name())
思路2代码:
def create_name():
n = random.randint(1, 2)
name = ''
for i in range(n):
s = GBK2312()
name = name+s
return first_name()+name
python中文昵称-python3随机生成中文字符(随机生成两字或三字的名字)相关推荐
- python3一个中文3个字符_python3随机生成中文字符(随机生成两字或三字的名字)...
第一种方法:Unicode码 在unicode码中,汉字的范围是(0x4E00, 9FBF) import random def Unicode(): val = random.randint(0x4 ...
- python怎么读取中文文件-Python3 解决读取中文文件txt编码的问题
问题描述 尝试用Python写一个Wordcloud的时候,出现了编码问题. 照着网上某些博客的说法添添改改后,结果是变成了"UnicodeDecodeError: "utf-8' ...
- vb python excel_【Python3+VBA】在Excel中生成小姐姐
原标题:[Python3+VBA]在Excel中生成小姐姐 开发工具 Python版本:3.6.4 相关模块:PIL模块:openpyxl模块:以及一些Python自带的模块. Excel版本:Exc ...
- python leetcode_python实现leetcode中无重复字符的最长字串
无重复字符的最长字串是一道经典的额字符串处理算法的题目,日常编程过程中,处理字符串是很多见的.用Python来实现leetcode这道算法题,这题会涉及到一个概念"滑动窗口"的概 ...
- 用Python写的随机起名字的程序(可以起两字或三字名字)
今天老赵学习了easygui这个图形界面,因此想用easygui的界面写出一个随机起名字的程序 一.程序的完整代码 如果最近有想给宝宝起名字的朋友们,可以试试我这个程序哟~~~ import easy ...
- js 利用Unicode码随机生成中文昵称
前言 网上前辈们分享的随机昵称生成方式,都是通过随机获取事先定义的数组内容进行组合来实现随机生成一个类似真名的数据(最近我做的一个项目需求中的,要求随机生成昵称但是不要真名),那这就有点蛋疼了,我总不 ...
- 用Python生成随机的中文验证码图片
大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...
- python生成中文、字母、数字等字符图片
代码功能: 生成指定颜色.大小.字体的中文.字母.数字等字符图片 代码 from PIL import Image, ImageDraw, ImageFont import random# 设置背景颜 ...
- 怎样用python生成中文字符画_如何利用Python实现图片转字符画详解
本篇文章主要介绍了Python实现图片转字符画的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 字符画真的很有意思,将图片中的像素用字符代替,就生成了字符画. 但是像 ...
最新文章
- 组合计数 ---- 2020 EC final B. Rectangle Flip 2(枚举+组合计数)
- python字符编码讲解_python 字符编码讲解
- MVC3异常处理的方法
- social psychology 10th David G. Myers
- ubuntu10.10编译qtopia-2.2.0 问题总结及分析
- 2019 ICPC Asia-East Continent Final
- webpack filemanager-webpack-plugin 打多个zip时,出现循环打包情况
- 力拼5G,台湾拟释放出更多频谱
- MySQL 5.6版本二进制包多实例安装
- mysql给用户授权_mysql创建用户与授权(实例)
- ubuntu 20.04 pdf viewer 推荐
- 测量学-导线测量-测回法
- oracle筛选后怎样重新排序,excel表格筛选后怎么重新排序
- html5 表单 重置,css修改input表单默认样式重置与自定义大全
- 华为服务器bios系统,华为服务器bios设置
- 计算机开机错误62,电脑开机出现Error 1962错误如何解决?
- 计算机二级c 试题 答案,200409计算机二级C笔试试题(含答案)
- uniapp微信授权+获取手机号+解密手机号(带图详解)
- ipv6笔记无状态地址自动配置及状态
- html简洁风格的个人博客网站模板(源码)
热门文章
- bundle 的生成和使用
- (转)PHP5使用cookie时报错 cannot modify header information - headers already sent by (......)
- python小程序源代码-整理了适合新手的20个Python练手小程序
- python利器下载-Python打包利器:auto-py-to-exe
- python 命令行参数-Python处理命令行参数
- 怎么安装python3-centos编译安装python3怎么做?
- 机器人编程语言python-机器人编程语言有哪些?
- php和python区别-PHP与Python语言有哪些区别之处?选择哪一个好?
- python利器怎么编程-python等自动化脚本编程利器 Script.NET
- python教程视频在线-微软再推免费在线Python教程 包含20个视频