Python实现随机生成一个汉字的方法分享

 更新时间:2023年01月09日 10:17:57   作者:梦想橡皮擦  
这篇文章主要为大家详细介绍了Python如何实现随机生成一个汉字的功能,文中的示例代码讲解详细,对我们深入了解Python有一定的帮助,需要的可以参考一下

需求来源

在编写爬虫训练场 项目时,碰到一个随机头像的需求,这里用汉字去随机生成。

模拟的效果如下所示,输入一组汉字,然后返回一张图片。

接口地址如下所示:

https://ui-avatars.com/api/?name=梦想橡皮擦&background=03a9f4&color=ffffff&rounded=true

其中参数说明如下:

  • name:待生成的文字内容;
  • background:背景色;
  • color:前景色;
  • rounded:是否圆形。

我们在下一篇博客完成生成图片效果,本篇先实现随机汉字生成。

随机汉字

生成随机汉字的模块不是 Python 自带的功能,但是你可以使用 Python 的 random 模块来生成随机数,然后使用 Unicode 编码来获取对应的汉字。

下面是一个简单的例子,它生成一个随机的汉字:

import random

def get_random_char():
    # 汉字编码的范围是0x4e00 ~ 0x9fa5
    val = random.randint(0x4e00, 0x9fa5)
    # 转换为Unicode编码
    return chr(val)

print(get_random_char())

如果你想生成多个随机汉字,可以使用一个循环来调用 get_random_char() 函数,并将生成的汉字拼接起来。

下面的代码生成了 5 个随机汉字:

import random

def get_random_char():
    # 汉字编码的范围是0x4e00 ~ 0x9fa5
    val = random.randint(0x4e00, 0x9fa5)
    # 转换为Unicode编码
    return chr(val)

# 生成5个随机汉字
random_chars = ""
for i in range(5):
    random_chars += get_random_char()

print(random_chars)

随机生成常用汉字

直接使用 Unicode 编码,会出现很生僻字,在实战中可以使用部分策略解决该问题,例如找一篇长文,将其存储到一个文本文件中,然后使用 Python 的读写文件功能来读取文件中的汉字。

从互联网找一段文字,添加到 demo.txt 中,用于后续生成随机汉字。

从 demo.txt 中读取文字,这里再补充一个步骤,由于随机生成的文本中会有标点符号,所以需要进行去除。使用 Python 的字符串方法 translate 来实现。

import string

s = "Hello, xiangpica! How are you today?"

# 创建字符映射表
translator = str.maketrans('', '', string.punctuation)

# 使用字符映射表去除标点符号
s = s.translate(translator)

print(s)

结果该方法仅能去除 ASCII 编码的标点符号(例如 !、? 等)。如果去除 Unicode 编码的标点符号,还需要切换方法。

最终选定的模块是 Python 的 unicodedata 模块,其提供了一系列的函数,可以帮助你处理 Unicode 字符的相关信息。

下面是一些常用的 unicodedata 函数:

import unicodedata

print(unicodedata.name('X'))
print(unicodedata.name('0'))
print(unicodedata.name('@'))

unicodedata.lookup(name):返回给定名称的 Unicode 字符。

import unicodedata

print(unicodedata.lookup('LATIN CAPITAL LETTER X'))    # X
print(unicodedata.lookup('DIGIT ZERO'))    # 0
print(unicodedata.lookup('COMMERCIAL AT'))    # @

可以使用 unicodedata.category() 函数来判断一个字符是否是标点符号,然后再使用 translate() 函数来去除标点符号。

下面这段代码,就是使用了 unicodedata 模块和 translate() 函数来去除一段文本中的所有标点符号:

import unicodedata

s = "Hello, xiangpica! How are you today?"

# 创建字符映射表
translator = {ord(c): None for c in s if unicodedata.category(c).startswith('P')}

# 使用字符映射表去除标点符号
s = s.translate(translator)
print(s)

将上述代码集成到 Python 随机生成汉字中,示例如下。

import random
import unicodedata

def get_random_common_char():
    # 读取文件中的常用汉字
    with open('demo.txt', 'r',encoding='utf-8') as f:
        common_chars = f.read()
        # 去除空格
        common_chars = common_chars.replace(' ','')
        common_chars = common_chars.strip()

        # 创建字符映射表
        translator = {ord(c): None for c in common_chars if unicodedata.category(c).startswith('P')}

        # 使用字符映射表去除标点符号
        s = common_chars.translate(translator)


    return random.choice(s)

print(get_random_common_char())

随机生成五个汉字

random_chars = ""
for i in range(5):
    random_chars += get_random_common_char()
print(random_chars)

到此这篇关于Python实现随机生成一个汉字的方法分享的文章就介绍到这了,更多相关Python随机生成汉字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jupyter notebook 自定义python解释器的过程详解

    jupyter notebook 自定义python解释器的过程详解

    大家都知道jupyter notebook 网页版交互环境,类似于ipython,功能强大,这篇文章主要介绍了jupyter notebook 自定义python解释器的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Python socket套接字实现C/S模式远程命令执行功能案例

    Python socket套接字实现C/S模式远程命令执行功能案例

    这篇文章主要介绍了Python socket套接字实现C/S模式远程命令执行功能,涉及Python socket套接字编写服务器/客户机模式数据传输相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • python排序算法之选择排序

    python排序算法之选择排序

    这篇文章主要介绍了python排序算法之选择排序,选择排序表示从无序的数组中,每次选择最小或最大的数据,从无序数组中放到有序数组的末尾,以达到排序的效果,需要的朋友可以参考下
    2023-04-04
  • Python使用sqlite3第三方库读写SQLite数据库的方法步骤

    Python使用sqlite3第三方库读写SQLite数据库的方法步骤

    数据库非常重要,程序的数据增删改查需要数据库支持,python处理数据库非常简单,而且不同类型的数据库处理逻辑方式大同小异,下面这篇文章主要给大家介绍了关于Python使用sqlite3第三方库读写SQLite数据库的方法步骤,需要的朋友可以参考下
    2022-07-07
  • Python数据库的连接实现方法与注意事项

    Python数据库的连接实现方法与注意事项

    这篇文章主要介绍了Python数据库的连接实现方法与注意事项,需要的朋友可以参考下
    2016-02-02
  • 使用Python中PDB模块中的命令来调试Python代码的教程

    使用Python中PDB模块中的命令来调试Python代码的教程

    这篇文章主要介绍了使用Python中PDB模块中的命令来调试Python代码的教程,包括设置断点来修改代码等、对于Python团队项目工作有一定帮助,需要的朋友可以参考下
    2015-03-03
  • Python如何实现播放本地音乐并在web页面播放

    Python如何实现播放本地音乐并在web页面播放

    这篇文章主要为大家详细介绍了Python如何实现播放本地音乐并在web页面播放,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • 打包发布Python模块的方法详解

    打包发布Python模块的方法详解

    这篇文章我们来学习打包与发布你的Python模块的基础知识以及方法,非常的简单实用。所以不要浪费时间了,咱们开始吧!
    2016-09-09
  • pytorch中的model.eval()和BN层的使用

    pytorch中的model.eval()和BN层的使用

    这篇文章主要介绍了pytorch中的model.eval()和BN层的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python集合基本概念与相关操作实例分析

    Python集合基本概念与相关操作实例分析

    这篇文章主要介绍了Python集合基本概念与相关操作,结合实例形式分析了Python集合的功能、原理、基本使用方法及操作注意事项,需要的朋友可以参考下
    2019-10-10

最新评论