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

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


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

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


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


等风来,不如追风去……


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


本文质量分:

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

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



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

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博:

    • 1
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 1
      评论
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    梦幻精灵_cq

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值