因此,我是python新手,目前正在指导如何使用python编写基本函数。我被要求做一个函数,根据已知的正确拼写检查单词的拼写
如果单词正确,则函数返回“correct”;如果出现2个或更少的错误,则返回“几乎”;如果出现3个或更多错误,则函数返回“error”。例如,如果函数if的形式
spell(correct, guess)
spell('hello', hello')
将返回'correct',spell('hello','nello')
将返回'small',spell('hello','hejje')
将返回'error'
我的代码是:
def spell(correct, guess):
answer=list(guess)
right=list(correct)
w=0
for i in answer and right:
if answer[i]==right[i]:
w=w
else:
w=w+1
if w==0:
print("correct")
elif w==1 or w==2:
print("Almost")
else:
print("Wrong")
我试图通过将两个列表之间的差异数相加来定义函数。但我不断得到错误“列表索引必须是整数或切片,而不是str”,我不知道另一种解决问题的方法。我想知道编写代码的最佳方法,这样我就可以尝试我的代码工作
假设您有类似
word1 = 'hello'
和word2 = 'nello'
的东西,那么您可以这样做:您的无法工作的原因是您如何使用for循环:
如果
answer
是['h', 'e', 'l', 'l', 'o']
,那么i
将是该列表中的每个字符。只要计算为right
的是True
,并且因为right
是一个非空列表,它就会。所以i
将是'hello'
中的每个字符,这就是为什么会出现错误编辑:for循环的更简单版本:
两个问题
(一) 当你说
代码仅在
right
中迭代。您需要清楚地知道要遍历哪个列表。解决这个问题的办法与第二个问题有关(二) 遍历字符串列表将返回字符串
说
没有道理
a[i]
表示a
的第i个元素,但在本例中,i
实际上是您正在迭代的字符串。这相当于说a["b"]
相反,您应该遍历两个列表的索引:
相关问题 更多 >
编程相关推荐