菊花文、方框文,看起来很神奇的样子。其实,也就是在字符串中插入了特殊字符,利用特殊字符的显示特性获得的混合显示效果而已。(文中转换器源码仅一行代码哦🤗)
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
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规范(说明文档的规范写法)