gpt4 book ai didi

python - 刽子手程序的缺陷

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:16 24 4
gpt4 key购买 nike

我需要编写一个简单的刽子手函数,它接受一个字符串(被猜的单词)和一个字母列表(被猜的字母)。这是我正在使用的代码:

def WordGuessed(Word, letters):
if letters == []:
return False
else:
for i in letters:
if i not in Word:
return False
else:
if i == letters[-1]:
return True

该代码通常有效,但我发现它偶尔会打印出错误的答案。例如,如果

WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', 'u'])

它应该打印 True 时却打印 False。任何人都可以看到我的代码哪里错了吗?

最佳答案

一旦你发现一个不在单词中的猜测字母,你就会返回 False。在您的示例中,第一个字母不在单词中。

如果你循环遍历 Word 并检查每个字母是否在数组 letters 中,它会起作用:

def WordGuessed(Word, letters):
if letters == []:
return False
else:
for i in Word:
if i not in letters:
return False
else:
if i == Word[-1]:
return True

# prints True
print(WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', 'u']))

# prints False, missing 'u'
print(WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't']))

关于python - 刽子手程序的缺陷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39600549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com