如果我有密码,"生锈",我输入序列:" rusty123"," Rusty"和"赶紧" (这又保存到列表newList),当我打印出newList时,如何显示一个结果:
rusty123, wrong by 3 characters
Rusty, wrong by 1 characters
rush, wrong by 2 characters
我需要添加的是一个像(countDifference)这样的函数,它允许我比较正确的密码'生锈的'输入了错误的密码。因此,如果我输入' rusty123'它应该比较生锈的'到' rusty123'并将结果保存为整数(3 - 因为密码被3个字符关闭,即123错误)。然后我将此整数转换为字符串并将其记录到文件newFile。
我认为需要(密码='生锈的')作为常量,然后读取新密码输入的每一行,并将其进行比较,以便生锈'会做的伎俩,但我不知道如何。
password = "rusty"
user_input = raw_input("Please enter the password")
所以用户输入:" Rusty"并且该函数读取密码错误1个字符,即" R" - (应该是小写的)
解决:如果您遇到同样的问题,请按照@Chris Beck在解释结束时提供的链接进行操作。它完美地解决了这个问题。
答案 0 :(得分:2)
是否有一个函数可以帮助我确定错误的密码(以字符串形式输入)中有多少个字符(整数)来自正确的密码?
所以,这可能意味着一些不同的事情。有一些不同的概念“人们使用这个字符串与字符串有多少字符”。其中一些比其他人更容易编程,如果你是新手,那么你可能不想使用最复杂的版本。
从字符串A
到字符串B
最简单:
i
的{{1}}指数有多少? (如果一个字符串比另一个字符串长,那么也将所有这些索引计为不匹配。)
这是最容易实施的。然而,它并不总能给出最直观的结果。如果我有
A[i] != B[i]
这些字符串的距离将为8,即使它们只是“按一个字母”关闭。
更难:编辑距离
在编辑距离下,上面的A = "abracadabra"
B = "abrarcadabra"
和A
会有距离1.编辑距离意味着,为了将B
更改为{{1},必须执行多少次插入/删除操作}}。在某些变体中,两个相邻字符的交换也被认为仅计为距离1。
计算编辑距离的常用方法是使用动态编程。您可以在此处查看此示例:Edit Distance in Python