探究菊花文的“密码”(文中转换器源码仅一行代码哦)

news2024/12/25 23:57:10

菊花文、方框文,看起来很神奇的样子。其实,也就是在字符串中插入了特殊字符,利用特殊字符的显示特性获得的混合显示效果而已。(文中转换器源码仅一行代码哦🤗)


(本文获得CSDN质量评分【90】)

【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


菊花文、方框文,看起来很神奇的样子
探究“菊花文”的“密码”
(也就是字符串中插入特殊字符串的混合显示效果而已)


本文质量分:

90
本文地址: https://blog.csdn.net/m0_57158496/article/details/128234773

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 菊花文、方框文的“密码”
    • 1、初识菊花文、方框文
    • 2、查百科词条
    • 3、list()函数让“菊花”显形
    • 4、生产菊花、方框文本
      • 4.1 菊花和方框的Unicode
      • 4.2 文本转换函数,默认菊花:text_convertion(text, other)
      • 4.3 文本试炼
      • 4.4 拆解转换函数
    • 5、我的感悟
    • 6、完整源码


◆ 菊花文、方框文的“密码”

1、初识菊花文、方框文

  最近试用一个app在其中发现了有趣的文本。缘于“好奇宝宝”的脾性,进行了一番探究。我把过程整理分享,以“同好”把玩。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制出转换好的文本,在文本编辑器中的样子。
在这里插入图片描述

菊花文:我҉是҉重҉庆҉崽҉儿҉梦҉幻҉精҉灵҉

方框文:我̲̅是̲̅重̲̅庆̲̅崽̲̅儿̲̅梦̲̅幻̲̅精̲̅灵̲̅,看来,方框文在这里是无法显示的了。😄


回页目录

2、查百科词条

  长期浸润在网络,让我养成了一遇不明白的事儿,第一想到的豆是“百科词条”。“百科”虽然草根,没有官方辞典的权威,但我一直认为比较好使,自己在搜到的字符串中进行“有意”加减就好。这不,我第一时间就想到了“百科”。😄

“菊花文”百科词条:https://baike.quark.cn/c/lemma/74831822635166#/index

  由搜索得知,所谓的“菊花文”“方框文”,只是小年轻们的“玩具”,仅是在正常文本中间杂一些特殊字符,和本来的正常文本综合显示的效果。
  “菊花文”因间揉其间的字符,像极了菊花,且看起来像是衬在文本后面,优雅娟秀。而“方框文”的样子就像是在文本上下都加了个方框框,显得棱角硬朗。
  但菊花和方框,我们都无法直接用输入法输入,只有用前面app中的工具转换?祭起Python利器,她可以帮忙搞定。


回页目录

3、list()函数让“菊花”显形

  不是会点儿python么,上点儿代码🤔,用list()函数来“打散”“菊花文本”,让其字符显真身。


print(list('我҉是҉重҉庆҉崽҉儿҉梦҉幻҉精҉灵҉'))

在这里插入图片描述
[‘我’, ‘҉’, ‘是’, ‘҉’, ‘重’, ‘҉’, ‘庆’, ‘҉’, ‘崽’, ‘҉’, ‘儿’, ‘҉’, ‘梦’, ‘҉’, ‘幻’, ‘҉’, ‘精’, ‘҉’, ‘灵’, ‘҉’]

  还不待用“杖法”打散,一放入代码片容器,豆自动显形出来菊花了。😋


print(list('我̲̅是̲̅重̲̅庆̲̅崽̲̅儿̲̅梦̲̅幻̲̅精̲̅灵̲̅'))

[‘我’, ‘̅’, ‘̲’, ‘是’, ‘̅’, ‘̲’, ‘重’, ‘̅’, ‘̲’, ‘庆’, ‘̅’, ‘̲’, ‘崽’, ‘̅’, ‘̲’, ‘儿’, ‘̅’, ‘̲’, ‘梦’, ‘̅’, ‘̲’, ‘幻’, ‘̅’, ‘̲’, ‘精’, ‘̅’, ‘̲’, ‘灵’, ‘̅’, ‘̲’]

  方框文,在代码片容器中,豆像一堆箱子,但却经不住list()的棒打,显现真身:原来是间入了两个字符。🤗


回页目录

4、生产菊花、方框文本

  解秘了字符,可以定制自己的转换器了,用python代码将菊花和方框“混入”文本豆行了咯😄。

4.1 菊花和方框的Unicode

print(f"\n菊花字符“҉”,Unicode编码:{ord('҉')}\n\n方框字符“{chr(773)}{chr(818)}”,Unicode编码:773,818")

在这里插入图片描述
菊花字符“҉”,Unicode编码:1161
方框字符“̲̅”,Unicode编码:773,818

  方框文那个符号实在是太难搞了,网络到它们的Unicode编码用chr()函数才打印出来。😄😄

4.2 文本转换函数,默认菊花:text_convertion(text, other)


def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    return ''.join(map(lambda x: ''.join(x), zip(s, [other]*len(s))))

4.3 文本试炼


s = '我是重庆崽儿梦幻精灵'
print(f"\n菊花文本:{text_convertion(s)}\n方框文本:{text_convertion(s, f'{chr(773)}{chr(818)}')}")

s = "I'm a old man in Chongqing."
print(f"\n菊花文本:{text_convertion(s)}\n方框文本:{text_convertion(s, f'{chr(773)}{chr(818)}')}")

菊花文本:我҉是҉重҉庆҉崽҉儿҉梦҉幻҉精҉灵҉
方框文本:我̲̅是̲̅重̲̅庆̲̅崽̲̅儿̲̅梦̲̅幻̲̅精̲̅灵̲̅

菊花文本:I҉’҉m҉ ҉a҉ ҉o҉l҉d҉ ҉m҉a҉n҉ ҉i҉n҉ ҉C҉h҉o҉n҉g҉q҉i҉n҉g҉.҉
方框文本:I̲̅’̲̅m̲̅ ̲̅a̲̅ ̲̅o̲̅l̲̅d̲̅ ̲̅m̲̅a̲̅n̲̅ ̲̅i̲̅n̲̅ ̲̅C̲̅h̲̅o̲̅n̲̅g̲̅q̲̅i̲̅n̲̅g̲̅.̲̅

4.4 拆解转换函数

  前面只有一条语句的转换函数,多少有些费解,由于硬要定成一行,用了匿名函数lambda、zip()、map()和[other]传递特殊字符串参数。现将其拆解为最初级代码。

[]配合list.extend()方法


def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    
    tem = [] # 嵌入特殊字符后的字符串列表初值。
    
    for i in text:
        tem.extend([i, other])
    
    return ''.join(tem)

[]配合list.append()方法


def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    
    tem = [] # 嵌入特殊字符后的字符串列表初值。
    
    for i in text:
        tem.append(i)
        tem.append(other)
    
    return ''.join(tem)


回页目录

5、我的感悟

  这篇笔记的结语,也来一段“菊花”😄。


end_s0 = '通过对菊花文的寻源探访,也明白一个道理:看着再不明觉厉的东西,也是由最基本的“简单”组构,只是“我”不明其理而已。'
end_s = '不要害怕拦路的大石头,一样可以把它,一次次变小搓成灰。'

print(f"\n\n{text_convertion(end_s0)}\n\n{text_convertion(end_s)}") 

  通҉过҉对҉菊҉花҉文҉的҉寻҉源҉探҉访҉,҉也҉明҉白҉一҉个҉道҉理҉:҉看҉着҉再҉不҉明҉觉҉厉҉的҉东҉西҉,҉也҉是҉由҉最҉基҉本҉的҉“҉简҉单҉”҉组҉构҉,҉只҉是҉“҉我҉”҉不҉明҉其҉理҉而҉已҉。҉
  不҉要҉害҉怕҉拦҉路҉的҉大҉石҉头҉,҉一҉样҉可҉以҉把҉它҉,҉一҉次҉次҉变҉小҉搓҉成҉灰҉。҉


回页目录

6、完整源码

(源码较长,点此跳过源码)
#!/sur/bin/nve 
# coding: utf-8 


print(list('我҉是҉重҉庆҉崽҉儿҉梦҉幻҉精҉灵҉'))

print(list('我̲̅是̲̅重̲̅庆̲̅崽̲̅儿̲̅梦̲̅幻̲̅精̲̅灵̲̅'))

print(f"\n菊花字符“҉”,Unicode编码:{ord('҉')}\n\n方框字符“{chr(773)}{chr(818)}”,Unicode编码:773,818")


def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    return ''.join(map(lambda x: ''.join(x), zip(s, [other]*len(s))))


def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    
    tem = [] # 嵌入特殊字符后的字符串列表初值。
    
    for i in text:
        tem.extend([i, other])
    
    return ''.join(tem)
    

def text_convertion(text, other=chr(1161)):
    ''' 转换文本,other为特殊字符串,默认“菊花” '''
    
    tem = [] # 嵌入特殊字符后的字符串列表初值。
    
    for i in text:
        tem.append(i)
        tem.append(other)
    
    return ''.join(tem)
    


s = '我是重庆崽儿梦幻精灵'
print(f"\n菊花文本:{text_convertion(s)}\n方框文本:{text_convertion(s, f'{chr(773)}{chr(818)}')}")

s_en = "I'm a old man in Chongqing."
print(f"\n菊花文本:{text_convertion(s_en)}\n方框文本:{text_convertion(s_en, f'{chr(773)}{chr(818)}')}")

end_a = '通过对菊花文的寻源探访,也明白一个道理:看着再不明觉厉的东西,也是由最基本的“简单”组构,只是“我”不明其理而已。'
end_b = '不要害怕拦路的大石头,一样可以把它,一次次变小搓成灰。'
print(f"\n\n{text_convertion(end_a)}\n\n{text_convertion(end_b)}") 


en_mum = list("I҉'҉m҉ ҉a҉ ҉o҉l҉d҉ ҉m҉a҉n҉ ҉i҉n҉ ҉C҉h҉o҉n҉g҉a҉i҉n҉g҉.҉")
en_rim = list("I̲̅'̲̅m̲̅ ̲̅a̲̅ ̲̅o̲̅l̲̅d̲̅ ̲̅m̲̅a̲̅n̲̅ ̲̅i̲̅n̲̅ ̲̅C̲̅h̲̅o̲̅n̲̅g̲̅a̲̅i̲̅n̲̅g̲̅.̲̅")

mum = list('我҉是҉重҉庆҉崽҉儿҉梦҉幻҉精҉灵҉')

rim = list('我̲̅是̲̅重̲̅庆̲̅崽̲̅儿̲̅梦̲̅幻̲̅精̲̅灵̲̅')

input(f"\n神奇的文本:\n\n中文原文:{s}\n{mum}\n\n{rim}\n\n英文原文:{s_en}\n{en_mum}\n\n{en_rim}\\nn{en_rim}")


print(f"{chr(773)}{chr(818)}"*50)

print(chr(1161)*50)

c = chr(1161)

for i in range(1, 10):
    print() 
    for j in range(1, i+1):
        print(f"{c}{i}{c}×{c}{j}{c}={c}{i*j:>2}{c}", end=' ')


回页首

__上一篇:__ 练习:查询学生新学期选课(str、list、dict试炼)\

__下一篇:__ 

我的HOT博:

    • Hot:Python之魔幻切片(1207阅读)
    • 练习:数列求和a, aa, aaa, ..., aa...aa(n个a)(1206阅读)
    • 个人信息提取(1501阅读)
    • 十六进制字符串转Python代码(utf-8字符串转十六进制字符串)(1025阅读)
    • 生成100个随机正整数(1654阅读)
    • 给定字符串提取姓名(字符串、list、re“零宽断言”)(1244阅读)
    • 我的 Python.color() (Python 色彩打印控制)(1575阅读)
    • python清屏(2416阅读)
    • 回车符、换行符和回车换行符(2475阅读)
    • Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(1481阅读)
    • random.sample()将在python 3.9x后续版本中被弃用(1346阅读)
    • pandas 数据类型之 Series(1507阅读)
    • 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(1559阅读)
    • 练习:银行复利计算(用 for 循环解一道初中小题)(1494阅读)
    • pandas 数据类型之 DataFrame(3503阅读)
    • :班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2298阅读)
    • Python 续行符(\)“拯救”你的超长语句(1105阅读)
    • Python字符串居中显示(3663阅读)
    • 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1715阅读)
    • 用 pandas 解一道小题(2083阅读)
    • 可迭代对象和四个函数(1128阅读)
    • “快乐数”判断(1299阅读)
    • 罗马数字转换器(构造元素取模)(2392阅读)
    • Hot:罗马数字(转换器|罗生成器)(5256阅读)
    • Hot:让QQ群昵称色变的代码(44638阅读)
    • Hot:斐波那契数列(递归| for )(4169阅读)
    • 柱状图中最大矩形(1698阅读)
    • 排序数组元素的重复起止(1299阅读)
    • 电话拨号键盘字母组合(1485阅读)
    • 密码强度检测器(22227阅读)
    • 求列表平衡点(1891阅读)
    • Hot: 字符串统计(4362阅读)
    • Hot:尼姆游戏(聪明版首发)(3583阅读)
    • 尼姆游戏(优化版)(1258阅读)

    • 推荐条件 点阅破千


      回页首


      老齐漫画头像

      精品文章:

      • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
      • OPP三大特性:封装中的property
      • 通过内置对象理解python'
      • 正则表达式
      • python中“*”的作用
      • Python 完全自学手册
      • 海象运算符
      • Python中的 `!=`与`is not`不同
      • 学习编程的正确方法

      来源:老齐教室


      回页首

      ◆ Python 入门指南【Python 3.6.3】


      好文力荐:

      • 全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。

      • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛

      • 靠谱程序员的好习惯


      CSDN实用技巧博文:

      • 8个好用到爆的Python实用技巧
      • python忽略警告
      • Python代码编写规范
      • Python的docstring规范(说明文档的规范写法)

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75891.html

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

    相关文章

    Alpine安装Oracle JDK存在的问题

    简介 前面我们提到了Alpine使用的不是正统的glibc,对于一些强依赖glibc的系统建议不要使用Alpine,比如使用了Oracle JDK的系统,建议在Alpine换成OpenJDK。 Alpine官方给出了Alpine的三大特征 Small、Simple、Secure,但其实我们知…

    【论文阅读】 AdaptivePose: Human Parts as Adaptive Points

    DOI:https://doi.org/10.1609/aaai.v36i3.20185 AAAI 2022 Published:2022-06-28 Others阅读/整理:翻译1、翻译2 Intro&Background 多人姿态估计方法 two-stage methods【图a】 这些方法使用绝对关键点位置,定位的…

    顺时针打印矩阵

    大概题意为: 第一步: 第二步: 第三步: 第四步 : 这样核心就设计好了,接下来设计剩余的东西 设计题目程序 1.题目要求我们返回一个地址,所以我们创造一个一维数组,它的元素个数为行…

    华为机试_HJ61 放苹果【简单】【收藏】

    目录 描述 输入描述: 输出描述: 解题过程 提交代码 递归方法 动态规划方法 学习代码 递归方法 动态规划方法 收藏点 描述 把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法&#xff…

    Postman(七): postman应用实战

    Postman(13): postman应用实战 postman应用实战 下面以微信公众平台举例: 第一步、先创建文件夹 第二步、打开postman,创建collections 第三步、设置环境变量,全局变量 设置环境变量;如下图: 设置全局变量&#xf…

    银河麒麟V10 + 飞腾CPU编译安装 Qt5.9.9

    一、准备工作 1. 下载Qt源码包 这里我们要编译的是Qt5.9.9,下载网址:https://download.qt.io/archive/qt/5.9/5.9.9/single/ 在任意空闲位置新建文件夹,并将源码包放到该目录下。(这里在/home目录下新建名为Qt_Source的文件夹&a…

    Unity Animancer插件(二)精确控制

    一、通过名称播放动画 前面我们讲的都是直接通过动画片段的引用播放动画,Animancer也提供了直接通过动画名称来播放动画的方法。但这并不是推荐的使用方式,因为通过字符串播放比通过引用播放效率略低,且更难维护。 首先我们需要在角色身上挂…

    2022年ACM杰出会员名单公布:23位华人学者入选

    12月7日,2022年度ACM杰出会员(Distinguished Member)名单公布! 本次评选设有三个奖项,分别表彰在计算机领域做出的教育贡献、工程贡献和科学贡献。 ACM创立于1947年,目前在全球130多个国家和地区拥有超过…

    OceanBase 4.0 解读:降低分布式数据库使用门槛,谈谈我们对小型化的思考

    关于作者 赵裕众 OceanBase 资深技术专家,2010 年加入支付宝后从事分布式事务框架的研发,2013 年加入 OceanBase 团队,目前负责存储引擎相关的研发工作。 近年来,随着应用场景多样化和数据量的增长,我们看到分布式数据…

    判别分析-书后习题回顾总结

    5-2 题目 理论基础 多总体的距离判别 马氏距离:dG2(x)(x−μ)2σ2d^{2}_{G}(x)\frac{(x-\mu)^{2}}{\sigma^{2}}dG2​(x)σ2(x−μ)2​ 取马氏距离最小的那一个,就属于这类。 贝叶斯判别准则 计算qtft(x)q_{t}\times f_{t}(x)qt​ft​(x) ft(x)12πσ…

    001:Object-C介绍、创建第一个iOS工程、MVC架构

    常见APP基础业务模块: 常见App类型:通信与存储、流媒体、直播技术、图片处理、内容展示、Web、组件化、IM类型、音视频、直播类型、摄影摄像类型、资讯类型、工具、购物类型。 App 展示界面动画:底部TabBar、Navigation、列表、图片ImageVi…

    一文囊括Ceph所有利器(工具)

    原文链接: 知乎专栏: 一文囊括Ceph所有利器(工具) - 知乎 前言 ceph的工具很多,包括集群管理与运维,还有性能分析等等。 所以本文期望应收尽收所有的工具,也当做自己的一个梳理与总结,当自己需要的时候知道有哪些利器可以使用…

    一文搞懂SSL/TLS

    SSL/TLS1. 概述2. 协议组成2.1 握手协议(Handshake protocol)2.2 记录协议(Record Protocol)2.3 警报协议(Alert Protocol)3. 密码套件与密钥生成1. 概述 安全套接字层(SSL,Secure …

    使用 X2MindSpore 迁移 Pytorch 训练脚本mobileNet支持分布式训练

    简介 MindSpore是华为昇腾开发的深度学习框架,旨在提供端边云全场景的AI框架。 Pytorch是由Facebook推出的AI框架。 本教程使用MindStudio中的X2MindSpore功能自动将Pytorch脚本转换为MindSpore脚本的案例。使用的模型是分类任务模型mobileNet,数据集是c…

    【自动化测试】Selenium IDE脚本编辑与操作(了解)

    之前,我们录制脚本时是录制鼠标和键盘的所有在浏览器的操作,那么脚本会出现多余的步骤,有时候我们需要手动填写脚本或修改脚本,所以我们有必要对selenium IDE脚本编辑与操作有所了解;(采用录制的方式很容易…

    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园招聘管理系统968b0

    毕业设计也不需要做多高端的程序,毕业设计对于大多数同学来说,为什么感觉到难,最重要的一个原因,那就是理论课到实践课的转变,很多人一下不适应,本能开始拒绝,如果是一个考试,大家都…

    【大数据入门核心技术-Hbase】(一)HBase简介

    目录 一、HBase基本概述 1、Hbase是什么 2、什么时候用Hbase? 二、HBase基本架构 1、Client 2、Zookeeper 3、HMaster 4、 RegionServer 三、HBase逻辑结构 一、HBase基本概述 1、Hbase是什么 HBase是一个分布式的、面向列的开源数据库,该技术…

    pstore

    pstore简介 pstore最初是用于系统发生oops或panic时,自动保存内核log buffer中的日志。不过在当前内核版本中,其已经支持了更多的功能,如保存console日志、ftrace消息和用户空间日志。同时,它还支持将这些消息保存在不同的存储设…

    新手教程 | 手把手教你 谷歌浏览器如何使用HTTP代理?

    本文将针对谷歌浏览器如何使用代理IP进行详细说明,具体步骤如下: 1、代理IP信息查看 查看自己所购买的相对应的代理IP面板,点击代理IP -查看详情-进行查看“AuthKey”以及“AuthPwd”信息。 2、代理IP资源提取 在控制台-代理IP-中的“提取…

    Spring cloud Gateway 服务网关 实战

    Spring cloud Gateway 服务网关一、简介优点:特性:总结:二、核心概念三、路由规则1、Path2、Query3、Method4、Datetime5、RomoteAddr6、Header四、动态路由1、依赖2、配置动态获取URI服务名称转发五、过滤器1、网关过滤器 GatewayFilter局部…