ALL_CONSONANTS = 'bcdfghjklmnpqrstvwxyz'
HIDDEN = '^'`
def is_bonus_letter(lowercase_letter: str, phrase_puzzle: str,
current_view: str) -> bool:
"""Return True if and only if lowercase_letter is a bonus letter related
to phrase_puzzle and current_view.
>>> is_bonus_letter('k', 'talk', 't^l^')
True
>>> is_bonus_letter('l', 'love', 'l^v^')
False
"""
if ((lowercase_letter in ALL_CONSONANTS) and
(lowercase_letter in phrase_puzzle) and
(lowercase_letter in HIDDEN)):
return True
else:
return False
print(is_bonus_letter('k', 'talk', 't^l^')) # -> False
is_bonus_letter('k', 'talk', 't^l^')
的输出应为True
,但我一直得到False
。
为什么?
答案 0 :(得分:1)
您正在检查lowercase_letter in HIDDEN
是错误的,因为HIDDEN = '^'
并且lowercase_letter
是t
,^
中不存在
也许您打算检查lowercase_letter in current_view
,因为似乎current_view
尚未使用?
通常,当您有两个选项时,根据许多情况,返回真或假,您可以通过注释掉所有条件,然后一次添加一个,直到查明是哪个原因而快速找到答案它
答案 1 :(得分:0)
您的程序返回False,因为'k'不在't ^ l ^'中。如果您希望它返回True,则lowercase_letter必须为't'或'l',否则您必须编辑if语句。现在,您的程序返回false,因为(lowercase_letter in HIDDEN)
为false。