难辨的人物?

mpe*_*pen 4 python

我的数据库中有很多项目.每个都分配了一个唯一的ID.我想缩短这个ID并将其显示在页面上,这样如果我需要通过电话联系我们(通过电话)关于特定项目,他可以给我们缩短的ID,而不是一个非常大的数字.与SKU类似,在NCIX等网站上.因此,我正在考虑在36号编码它.但问题是,1lI所有类似的字母看起来都是一样的.所以,我正在考虑消除相似之处.这是一个好主意,还是应该使用一个非常易读的字体?

Nas*_*nov 6

是的,你应该消除混乱的根源.因为如果可以犯错误,有人做出错误.很容易将0与O和I混淆为l或1 - 因此不应同时使用它们.那很容易 - 因为你不会使用3个字符(i,L和o),只需得到36-3中的数字= 33并转换

SKU.replace('I','X').replace('L','Y').replace('O','Z')
Run Code Online (Sandbox Code Playgroud)

反过来,当给出这样的代码并且在做int之前(SKU,33),你将不得不将XYZ返回到令人困惑的字符.在此之前,如果 - 如预期的那样 - 你错误地给出了L或I,则替换为1,如果给定O,则替换为0.例如,使用SKU.translate() string.maketrans('LIOXYZ','110IL0')