比较字符串中的单个字符,并接受为真的输入,即使拼写不正确

2024-05-14 21:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Python,我有个问题

为了学习,我决定做一个简单的测验程序,利用函数、类和其他东西作为练习

我有个问题一直困扰着我。测验的形式通常是我从一组问题中随机问一个问题,答案需要打印出来。如果返回的答案是正确的,我将返回一个真值,并使用该值添加到总积分计数中

现在,问题是字符串必须精确,否则即使有正确的意图,答案也会是错误的。我在定义问题时,通过在类参数中使用一个集合解决了这个问题,因此如果答案属于该集合,那么它将是预期的

这个方法的问题是,我不太清楚一个人怎么会拼错东西。例如,如果一个问题的答案是“lovegood”,即使用户输入了“lovegood”、“lovegd”、“lovegoood”或“lovegood”,我也要接受这个答案,我不能解释每一个可能的错误

我决定写一个特殊的函数,将输入的字符串中的每个字符与正确答案的字符串中的每个字符进行比较,如果大多数字符匹配,那么答案是正确的。这是我能做的吗?如果是,怎么做?有更好的方法吗

任何帮助都将不胜感激


Tags: 方法函数字符串答案程序利用参数定义
1条回答
网友
1楼 · 发布于 2024-05-14 21:05:17

这不是一个很容易优雅地解决的问题,因为它有点主观。我们在哪里定义什么足够接近什么不够

例如,lovegooddddddddddloveeeeee good是否可以接受?正如你所说的,有太多的案例需要考虑。

一种粗略的解决方案是使用Levenshtein distance,这是一种确定给定字符串中有多少字符与另一个字符串不同的算法。您可以定义一个阈值,以确定您将接受的答案的接近程度

相关问题 更多 >

    热门问题