欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實(shí)現(xiàn)區(qū)分I和L

 更新時(shí)間:2024年11月28日 09:32:06   作者:仙草哥哥  
最討厭分不清I與l,所以為了解決這個(gè)問題,這篇文章小編專門為大家介紹了如何使用Python實(shí)現(xiàn)區(qū)分這些混淆字符,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

分不清的I和l

今天,朋友讓我在游戲里面加他為好友,并且,他發(fā)送了自己的游戲ID給我。不過,由于這個(gè)游戲中不支持復(fù)制粘貼,所以說,我只能手動(dòng)輸入。

但是,當(dāng)我看到這個(gè)ID的時(shí)候,我頓感非常無語(yǔ),這個(gè)ID大概是這樣的:

全是小寫的l與大寫的I組成的,在一些字體中,I與l根本看不出什么差別,這我怎么知道這個(gè)名字是什么?。?/p>

我非常困惑:“你起這種名字干嘛?故意整我嗎?”

朋友表示很委屈:“不是啊,因?yàn)橛螒虿恢С帜涿?,但是高分段玩家又特別少,所以起一個(gè)正常名字很容易被認(rèn)出來導(dǎo)致被針對(duì),所以說,我們高分段玩家就達(dá)成了共識(shí),全都起帶有1,I,l的名字,讓別人沒辦法輕松認(rèn)出來,從而防止被針對(duì)。”

他好像說的也很有道理,但是,我該怎么區(qū)分出I與l呢?難道要一個(gè)一個(gè)復(fù)制下來去搜索對(duì)比嗎?

統(tǒng)計(jì)混淆字符

當(dāng)然不可能一個(gè)一個(gè)搜啦,我們應(yīng)該用python程序,一次統(tǒng)計(jì)出所有的混淆字符。

import re
from collections import defaultdict
 
 
confusable_chars = {
    'I': '大寫字母I',
    'l': '小寫字母l',
    '1': '數(shù)字1',
    '0': '數(shù)字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("混淆字符統(tǒng)計(jì)分析:")
    for char, positions in results.items():
        print(f"字符 '{char}' ({confusable_chars[char]}) 出現(xiàn)次數(shù): {len(positions)}, 位置: {positions}")
    
    return results
 
 
results = analyze_confusable_characters(text, confusable_chars)

現(xiàn)在,我們就可以輕松的看到,他們都是什么了

分別標(biāo)記每個(gè)字符

標(biāo)記了每個(gè)字符的位置,有的時(shí)候可能仍然不方便輸入,因?yàn)槲铱偛荒芤粋€(gè)一個(gè)去數(shù)他們的位置吧(尤其是出現(xiàn)次數(shù)多的情況下),因此,為了方便輸入,我們應(yīng)該從頭到尾,把每一個(gè)字符依次標(biāo)記清楚。

confusable_chars = {
    'I': '大寫字母I',
    'l': '小寫字母l',
    '1': '數(shù)字1',
    '0': '數(shù)字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}個(gè)字符是:{confusable_chars[char]}\n"
        else:
            results += f"第{idx + 1}個(gè)字符是:{char}\n"
 
    return results
 
 
results = analyze_confusable_characters(text, confusable_chars)
print(results)

很好,現(xiàn)在我們只需要根據(jù)程序提示,依次輸入內(nèi)容即可:

如果你還有更多的字符容易搞混,例如分不清數(shù)字5和字母S的話,也可以通過擴(kuò)充混淆字符表,從而實(shí)現(xiàn)更多的混淆字符的區(qū)分,比如說:

confusable_chars = {
    'S': '大寫字母S',
    's': '小寫字母s',
    '5': '數(shù)字5',
    'u': '小寫字母u,不是變胖了的v',
    'v': '小寫字母v',
    '3': '數(shù)字3'
}

到此這篇關(guān)于使用Python實(shí)現(xiàn)區(qū)分I和L的文章就介紹到這了,更多相關(guān)Python區(qū)分I和L內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python函數(shù)用法和底層原理分析

    Python函數(shù)用法和底層原理分析

    函數(shù)是可重用的程序代碼塊。函數(shù)的作用,不僅可以實(shí)現(xiàn)代碼的復(fù)用,更能實(shí)現(xiàn)代碼的一致性。一致性指的是,只要修改函數(shù)的代碼,則所有調(diào)用該函數(shù)的地方都能得到體現(xiàn),這篇文章主要介紹了Python函數(shù)用法和底層分析,需要的朋友可以參考下
    2022-12-12
  • python3之微信文章爬蟲實(shí)例講解

    python3之微信文章爬蟲實(shí)例講解

    下面小編就為大家?guī)硪黄猵ython3之微信文章爬蟲實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • python使用selenium爬蟲知乎的方法示例

    python使用selenium爬蟲知乎的方法示例

    這篇文章主要介紹了python使用selenium爬蟲知乎的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python中使用numpy包的向量矩陣相乘np.dot和np.matmul實(shí)現(xiàn)

    python中使用numpy包的向量矩陣相乘np.dot和np.matmul實(shí)現(xiàn)

    本文主要介紹了python中使用numpy包的向量矩陣相乘np.dot和np.matmul實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python?中?yeild?的用法詳解

    Python?中?yeild?的用法詳解

    yield?是?Python?中的關(guān)鍵字,用于生成器函數(shù)中,可以將函數(shù)變成一個(gè)迭代器,實(shí)現(xiàn)惰性計(jì)算,節(jié)省內(nèi)存空間。本文將介紹?yield?的基本用法和實(shí)現(xiàn)原理,以及與?yield?相關(guān)的注意事項(xiàng)和常見問題。
    2023-06-06
  • 基于django和dropzone.js實(shí)現(xiàn)上傳文件

    基于django和dropzone.js實(shí)現(xiàn)上傳文件

    這篇文章主要介紹了基于django和dropzone.js實(shí)現(xiàn)上傳文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例

    pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例

    這篇文章主要介紹了pytorch Dataset, DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 如何在Django中設(shè)置定時(shí)任務(wù)的方法示例

    如何在Django中設(shè)置定時(shí)任務(wù)的方法示例

    這篇文章主要介紹了如何在Django中設(shè)置定時(shí)任務(wù)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

    Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

    這篇文章主要介紹了Django + Celery 實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python 元組操作總結(jié)

    Python 元組操作總結(jié)

    這篇文章主要介紹了Python 元組操作總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論