使用Python实现区分I和L
分不清的I和l
今天,朋友让我在游戏里面加他为好友,并且,他发送了自己的游戏ID给我。不过,由于这个游戏中不支持复制粘贴,所以说,我只能手动输入。
但是,当我看到这个ID的时候,我顿感非常无语,这个ID大概是这样的:
全是小写的l与大写的I组成的,在一些字体中,I与l根本看不出什么差别,这我怎么知道这个名字是什么啊?
我非常困惑:“你起这种名字干嘛?故意整我吗?”
朋友表示很委屈:“不是啊,因为游戏不支持匿名,但是高分段玩家又特别少,所以起一个正常名字很容易被认出来导致被针对,所以说,我们高分段玩家就达成了共识,全都起带有1,I,l的名字,让别人没办法轻松认出来,从而防止被针对。”
他好像说的也很有道理,但是,我该怎么区分出I与l呢?难道要一个一个复制下来去搜索对比吗?
统计混淆字符
当然不可能一个一个搜啦,我们应该用python程序,一次统计出所有的混淆字符。
import re from collections import defaultdict confusable_chars = { 'I': '大写字母I', 'l': '小写字母l', '1': '数字1', '0': '数字0', 'O': '大写字母O', 'o': '小写字母o' } text = "IllllIl111llI11111" def analyze_confusable_characters(text, confusable_chars): results = defaultdict(list) for i, char in enumerate(text): if char in confusable_chars: results[char].append(i) print("混淆字符统计分析:") for char, positions in results.items(): print(f"字符 '{char}' ({confusable_chars[char]}) 出现次数: {len(positions)}, 位置: {positions}") return results results = analyze_confusable_characters(text, confusable_chars)
现在,我们就可以轻松的看到,他们都是什么了
分别标记每个字符
标记了每个字符的位置,有的时候可能仍然不方便输入,因为我总不能一个一个去数他们的位置吧(尤其是出现次数多的情况下),因此,为了方便输入,我们应该从头到尾,把每一个字符依次标记清楚。
confusable_chars = { 'I': '大写字母I', 'l': '小写字母l', '1': '数字1', '0': '数字0', 'O': '大写字母O', 'o': '小写字母o' } text = "IllllIl111llI11111" def analyze_confusable_characters(text, confusable_chars): results = "" for idx, char in enumerate(text): if char in confusable_chars: results += f"第{idx + 1}个字符是:{confusable_chars[char]}\n" else: results += f"第{idx + 1}个字符是:{char}\n" return results results = analyze_confusable_characters(text, confusable_chars) print(results)
很好,现在我们只需要根据程序提示,依次输入内容即可:
如果你还有更多的字符容易搞混,例如分不清数字5和字母S的话,也可以通过扩充混淆字符表,从而实现更多的混淆字符的区分,比如说:
confusable_chars = { 'S': '大写字母S', 's': '小写字母s', '5': '数字5', 'u': '小写字母u,不是变胖了的v', 'v': '小写字母v', '3': '数字3' }
到此这篇关于使用Python实现区分I和L的文章就介绍到这了,更多相关Python区分I和L内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python成功解决读文件出现:IOError: [Errno 0] Error的错误
在Python编程中,处理文件是常见的任务之一,但偶尔也会遇到各种错误,包括IOError,尽管Python 3.x中IOError已被OSError和FileNotFoundError等更具体的异常所取代,由于[Errno 0]不直接指向具体的错误类型,我们将讨论一系列可能导致IOError的常见情况,需要的朋友可以参考下2024-07-07详解windows python3.7安装numpy问题的解决方法
这篇文章主要介绍了windows python3.7安装numpy问题的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-08-08
最新评论