本文收录了162个常用圆圈字符,文内有“圆圈字符自动替换器”。
(本笔记适合熟悉字符串数据类型的 coder 翻阅)
Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
1、圆圈阿拉伯数字1-50:⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿
2、圆圈大写英文字母:ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ
3、圆圈小写英文字母:ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ
4、圆圈大写中文数字:㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉
5、圆圈反写阿拉伯数字:❶❷❸❹❺❻❼❽❾❿
【原文链接:https://k.sina.cn/article_3546037087_d35c3b5f00100d9o0.html】
在用调试代码打印圆圈字符时,我看到有些圆圈汉字,比较常用,特收录进来,与大家共享。
#!/sur/bin/nve python
# coding: utf-8
circleNumbers = '⓪' + ''.join([chr(i) for i in range(9312, 9332)]) + ''.join([chr(i) for i in range(12881,12896)]) + ''.join([chr(i) for i in range(12977,12992)])
inverseCircleNumbers = ''.join([chr(i) for i in range(10102,10112)])
circleUppers = ''.join([chr(i) for i in range(9398, 9424)])
circleLowers = ''.join([chr(i) for i in range(9424,9450)])
circleChineses = ''.join([chr(i) for i in range(12928,12977)])
print(f"\n圆圈数字0~50:\n{circleNumbers}\n\n反白圆圈数字1~10:\n{inverseCircleNumbers}\n\n26个圆圈大写字母:\n{circleUppers}\n\n26个圆圈小写字母:\n{circleLowers}\n\n圆圈汉字({len(circleChineses)}):\n{circleChineses}")
圆圈数字0~50:
⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛ ㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿
反白圆圈数字1~10:
❶❷❸❹❺❻❼❽❾❿
26个圆圈大写字母:
ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ
26个圆圈小写字母:
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ
圆圈汉字(49):
㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰
算法解析:要写“圆圈字符替换器”,得先行准备“普通字符与圆圈字符对应的字典”。
0~50的数字圆圈字符、1~10反白数字圆圈字符key字符是连续的,可以用range()配合zip()函数生成对应字典;大小写字母普通字符和圆圈字符都是连续的,不用生成字典,可以直接用字符编码加减实现互换;汉字圆圈字符有多个汉字(繁体字、异体字)对应同一个圆圈字符的情况,用iter()函数把普通字符与圆圈字符依次紧挨的字符串转成迭代器再借助zip()函数生成字典,才是“最好的办法”!
0~50圆圈数字字符字典:
{‘0’: ‘⓪’, ‘1’: ‘①’, ‘2’: ‘②’, ‘3’: ‘③’, ‘4’: ‘④’, ‘5’: ‘⑤’, ‘6’: ‘⑥’, ‘7’: ‘⑦’, ‘8’: ‘⑧’, ‘9’: ‘⑨’, ‘10’: ‘⑩’, ‘11’: ‘⑪’, ‘12’: ‘⑫’, ‘13’: ‘⑬’, ‘14’: ‘⑭’, ‘15’: ‘⑮’, ‘16’: ‘⑯’, ‘17’: ‘⑰’, ‘18’: ‘⑱’, ‘19’: ‘⑲’, ‘20’: ‘⑳’, ‘21’: ‘㉑’, ‘22’: ‘㉒’, ‘23’: ‘㉓’, ‘24’: ‘㉔’, ‘25’: ‘㉕’, ‘26’: ‘㉖’, ‘27’: ‘㉗’, ‘28’: ‘㉘’, ‘29’: ‘㉙’, ‘30’: ‘㉚’, ‘31’: ‘㉛’, ‘32’: ‘㉜’, ‘33’: ‘㉝’, ‘34’: ‘㉞’, ‘35’: ‘㉟’, ‘36’: ‘㊱’, ‘37’: ‘㊲’, ‘38’: ‘㊳’, ‘39’: ‘㊴’, ‘40’: ‘㊵’, ‘41’: ‘㊶’, ‘42’: ‘㊷’, ‘43’: ‘㊸’, ‘44’: ‘㊹’, ‘45’: ‘㊺’, ‘46’: ‘㊻’, ‘47’: ‘㊼’, ‘48’: ‘㊽’, ‘49’: ‘㊾’, ‘50’: ‘㊿’}
1~10反白圆圈数字字符字典:
{‘1’: ‘❶’, ‘2’: ‘❷’, ‘3’: ‘❸’, ‘4’: ‘❹’, ‘5’: ‘❺’, ‘6’: ‘❻’, ‘7’: ‘❼’, ‘8’: ‘❽’, ‘9’: ‘❾’, ‘10’: ‘❿’}
大小写字母圆圈字符对应表:
A=>Ⓐ B=>Ⓑ C=>Ⓒ D=>Ⓓ E=>Ⓔ F=>Ⓕ G=>Ⓖ H=>Ⓗ I=>Ⓘ J=>Ⓙ K=>Ⓚ L=>Ⓛ M=>Ⓜ N=>Ⓝ O=>Ⓞ P=>Ⓟ Q=>Ⓠ R=>Ⓡ S=>Ⓢ T=>Ⓣ U=>Ⓤ V=>Ⓥ W=>Ⓦ X=>Ⓧ Y=>Ⓨ Z=>Ⓩ
a=>ⓐ b=>ⓑ c=>ⓒ d=>ⓓ e=>ⓔ f=>ⓕ g=>ⓖ h=>ⓗ i=>ⓘ j=>ⓙ k=>ⓚ l=>ⓛ m=>ⓜ n=>ⓝ o=>ⓞ p=>ⓟ q=>ⓠ r=>ⓡ s=>ⓢ t=>ⓣ u=>ⓤ v=>ⓥ w=>ⓦ x=>ⓧ y=>ⓨ z=>ⓩ
汉字圆圈字符字典(49):
【由于繁体字、异体字,字典键有56个】
{‘一’: ‘㊀’, ‘二’: ‘㊁’, ‘三’: ‘㊂’, ‘四’: ‘㊃’, ‘五’: ‘㊄’, ‘六’: ‘㊅’, ‘七’: ‘㊆’, ‘八’: ‘㊇’, ‘九’: ‘㊈’, ‘十’: ‘㊉’, ‘月’: ‘㊊’, ‘火’: ‘㊋’, ‘水’: ‘㊌’, ‘木’: ‘㊍’, ‘金’: ‘㊎’, ‘土’: ‘㊏’, ‘日’: ‘㊐’, ‘株’: ‘㊑’, ‘有’: ‘㊒’, ‘社’: ‘㊓’, ‘名’: ‘㊔’, ‘特’: ‘㊕’, ‘财’: ‘㊖’, ‘財’: ‘㊖’, ‘祝’: ‘㊗’, ‘労’: ‘㊘’, ‘秘’: ‘㊙’, ‘男’: ‘㊚’, ‘女’: ‘㊛’, ‘適’: ‘㊜’, ‘优’: ‘㊝’, ‘優’: ‘㊝’, ‘印’: ‘㊞’, ‘注’: ‘㊟’, ‘项’: ‘㊠’, ‘項’: ‘㊠’, ‘休’: ‘㊡’, ‘写’: ‘㊢’, ‘正’: ‘㊣’, ‘上’: ‘㊤’, ‘中’: ‘㊥’, ‘下’: ‘㊦’, ‘左’: ‘㊧’, ‘右’: ‘㊨’, ‘医’: ‘㊩’, ‘宗’: ‘㊪’, ‘学’: ‘㊫’, ‘监’: ‘㊬’, ‘監’: ‘㊬’, ‘企’: ‘㊭’, ‘资’: ‘㊮’, ‘資’: ‘㊮’, ‘貲’: ‘㊮’, ‘协’: ‘㊯’, ‘協’: ‘㊯’, ‘夜’: ‘㊰’}
本次共计收录圆圈字符162个。
圆圈字符字典生成代码
circleNumberDict = dict(zip(map(str, range(51)), circleNumbers))
inverseCircleNumberDict = dict(zip(map(str, range(1, 11)), inverseCircleNumbers))
print(f"\n0~50圆圈数字字符字典:\n{circleNumberDict}\n\n1~10反白圆圈数字字符字典:\n{inverseCircleNumberDict}") # 打印0~50对应圆圈数字字符字典和1~10反白圆圈数字字符字典。
print(f"\n大小写字母圆圈字符对应表:")
number_A = ord('A')
step = ord('Ⓐ') - number_A
suppers = [f"{chr(i)}=>{chr(i+step)}" for i in range(ord('A'), ord('Z')+1)]
print(' '.join(suppers)) # 打印大写字母对应圆圈字符。
number_a = ord('a')
step = ord('ⓐ') - number_a
lowers = [f"{chr(i)}=>{chr(i+step)}" for i in range(ord('a'), ord('z')+1)]
print(' '.join(lowers)) # 打印小写字母对应圆圈字符。
circleChineseCharacters = '一㊀二㊁三㊂四㊃五㊄六㊅七㊆八㊇九㊈十㊉月㊊火㊋水㊌木㊍金㊎土㊏日㊐株㊑有㊒社㊓名㊔特㊕财㊖財㊖祝㊗労㊘秘㊙男㊚女㊛適㊜优㊝優㊝印㊞注㊟项㊠項㊠休㊡写㊢正㊣上㊤中㊥下㊦左㊧右㊨医㊩宗㊪学㊫监㊬監㊬企㊭资㊮資㊮貲㊮协㊯協㊯夜㊰'
chars = iter(circleChineseCharacters)
circleChineseCharacterDict = dict(zip(chars, chars))
print(f"\n汉字圆圈字符字典({len(circleChineseCharacterDict)-7}):\n【由于繁体字、异体字,字典键有56个】:\n{circleChineseCharacterDict}")
print(f"\n本次共计收录圆圈字符{(len(circleNumberDict|circleChineseCharacterDict)-7)+len(inverseCircleNumberDict)+52}个。\n")
“圆圈字符替换器”源码
class CircleCharacter:
def __init__(self):
self.circleNumberDict = dict(zip(map(str, range(51)), circleNumbers)) # 生成0~50数字圆圈字符字典。
self.inverseCircleNumberDict = dict(zip(map(str, range(1, 11)), inverseCircleNumbers)) # 生成1~10反白数字圆圈字符字典。
circleChineseCharacters = '一㊀二㊁三㊂四㊃五㊄六㊅七㊆八㊇九㊈十㊉月㊊火㊋水㊌木㊍金㊎土㊏日㊐株㊑有㊒社㊓名㊔特㊕财㊖財㊖祝㊗労㊘秘㊙男㊚女㊛適㊜优㊝優㊝印㊞注㊟项㊠項㊠休㊡写㊢正㊣上㊤中㊥下㊦左㊧右㊨医㊩宗㊪学㊫监㊬監㊬企㊭资㊮資㊮貲㊮协㊯協㊯夜㊰'
chars = iter(circleChineseCharacters) # 普通字符与圆圈字符对应序列字符串,用iter()函数转换成迭代器。
self.circleChineseCharacterDict = dict(zip(chars, chars)) # 生成中文圆圈字符字典。
def numberReplace(self, s):
''' 数字圆圈字符替换 '''
d = self.circleNumberDict
for i in list(d.keys())[::-1]: # 遍历字典self.circleNumberDict键。
#for i in list(map(str, range(51)))[::-1]: # 遍历0~50数字字符串。
if i in s:
s = s.replace(i, d.get(i))
return s
def inverseNumberReplace(self, s):
''' 反白圆圈数字字符替换 '''
d = self.inverseCircleNumberDict
for i in list(d.keys())[::-1]:
if i in s:
s = s.replace(i, d.get(i))
return s
def letterEnglishReplace(self, s):
''' 英文字母圆圈字符替换 '''
s = list(s)
stepSupper = ord('Ⓐ') - ord('A')
stepLower = ord('ⓐ') - ord('a')
for i in range(len(s)):
if s[i].isupper():
s[i] = chr(ord(s[i])+stepSupper)
elif s[i].islower():
s[i] = chr(ord(s[i])+stepLower)
return ''.join(s)
def letterEnglishReplace6(self, s):
''' 英文字母圆圈字符替换 '''
stepSupper = ord('Ⓐ') - ord('A')
stepLower = ord('ⓐ') - ord('a')
for i in s:
if i.isupper():
s = s.replace(i, chr(ord(i)+stepSupper))
elif i.islower():
s = s.replace(i, chr(ord(i)+stepLower))
return s
def characterChineseReplace(self, s):
''' 汉字圆圈字符替换 '''
d = self.circleChineseCharacterDict
for i in s:
if i in d:
s = s.replace(i, d.get(i))
return s
原字符串
:
我是梦幻精灵_cq。
a Chongqonger and I’m old man and I’m fifty old years.
我喜欢Python,差不多24小时内都必然会码几行python 代码 。平时最爱闲逛CSDN,截止今日已在csdn驻扎2年多了;从2021年05月21日00时39分23秒发布第一篇博文笔记算起,到今天 已经有856天了。
【试炼调用“圆圈字符替换器
”代码】
if __name__ == '__main__':
s = '''我是梦幻精灵_cq。
a Chongqonger and I'm old man and I'm fifty old years.
我喜欢Python,差不多24小时内都必然会码几行python 代码。平时最爱闲逛CSDN,截止今日已在csdn驻扎2年多了;从2021年05月21日00时39分23秒发布第一篇博文笔记算起,到今天已经有856天了。'''
c = CircleCharacter()
print(f"\n原字符串:\n{s}")
print(f"\n\n数字替换后:\n{c.numberReplace(s)}")
print(f"\n\n反白数字替换后:\n{c.inverseNumberReplace(s)}")
print(f"\n\n英文字母字符替换后:\n{c.letterEnglishReplace(s)}")
print(f"\n\n圆圈汉字字符替换后:\n{c.characterChineseReplace(s)}")
print(f"\n\n圆圈数字、英文字母、汉字字符替换后:")
s = c.numberReplace(s)
s = c.letterEnglishReplace(s)
print(c.characterChineseReplace(s))
1、数字替换后
:
(圆圈数字字符只收录0~50,我采用逆序开始替换的)
我是梦幻精灵_cq。
a Chongqonger and I’m old man and I’m fifty old years.
我喜欢Python,差不多㉔小时内都必然会码几行python 代码 。平时最爱闲逛CSDN,截止今日已在csdn驻扎②年多了;从⑳㉑年⓪⑤月㉑日⓪⓪时㊴分㉓秒发布第一篇博文笔记算起,到今天已经有⑧⑤⑥天了。
2、反白数字替换后
:
(反白圆圈数字字符只有1~10)
我是梦幻精灵_cq。
a Chongqonger and I’m old man and I’m fifty old years.
我喜欢Python,差不多❷❹小时内都必然会码几行python 代码 。平时最爱闲逛CSDN,截止今日已在csdn驻扎❷年多了;从❷0❷❶年0❺月❷❶日00时❸❾分❷❸秒发布第一篇博文笔记算起,到今天 已经有❽❺❻天了。
3、英文字母字符替换后
:
我是梦幻精灵_ⓒⓠ。
ⓐ Ⓒⓗⓞⓝⓖⓠⓞⓝⓖⓔⓡ ⓐⓝⓓ Ⓘ’ⓜ ⓞⓛⓓ ⓜⓐⓝ ⓐⓝⓓ Ⓘ’ⓜ ⓕⓘⓕⓣⓨ ⓞⓛⓓ ⓨⓔⓐⓡⓢ.
我喜欢Ⓟⓨⓣⓗⓞⓝ,差不多24小时内都必然会码几行ⓟⓨⓣⓗⓞⓝ 代码 。平时最爱闲逛ⒸⓈⒹⓃ,截止今日已在ⓒⓢⓓⓝ驻扎2年多了;从2021年05月21日00时39分23秒发布第一篇博文笔记算起,到今天 已经有856天了。
4、圆圈汉字字符替换后
:
我是梦幻精灵_cq。
a Chongqonger and I’m old man and I’m fifty old years.
我喜欢Python,差不多24小时内都必然会码几行python 代码 。平时最爱闲逛CSDN,截止今㊐已在csdn驻扎2年多了;从2021年05㊊21㊐00时39分23秒发布第㊀篇博文笔记算起,到今天 已经㊒856天了。
5、圆圈数字、英文字母、汉字字符替换后
:
我是梦幻精灵_ⓒⓠ。
ⓐ Ⓒⓗⓞⓝⓖⓠⓞⓝⓖⓔⓡ ⓐⓝⓓ Ⓘ’ⓜ ⓞⓛⓓ ⓜⓐⓝ ⓐⓝⓓ Ⓘ’ⓜ ⓕⓘⓕⓣⓨ ⓞⓛⓓ ⓨⓔⓐⓡⓢ.
我喜欢Ⓟⓨⓣⓗⓞⓝ,差不多㉔小时内都必然会码几行ⓟⓨⓣⓗⓞⓝ 代码 。平时最爱闲逛ⒸⓈⒹⓃ,截止今㊐已在ⓒⓢⓓⓝ驻扎②年多了;从⑳㉑年⓪⑤㊊㉑㊐⓪⓪时㊴分㉓秒发布第㊀篇博文笔记算起,到今天已经㊒⑧⑤⑥天了。
(源码较长,点此跳过源码)
我的HOT博:
本次共计收集 231 篇博文笔记信息,总阅读量 39.26w,平均阅读量 1699。已生成 26 篇阅读量不小于 3000 的博文笔记索引链接。数据采集于 2023-09-17 07:11:24 完成,用时 4 分 46.69 秒。
精品文章:
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
CSDN实用技巧博文: