为什么语句返回False?

时间:2020-10-06 22:01:38

标签: python

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
为什么?

2 个答案:

答案 0 :(得分:1)

您正在检查lowercase_letter in HIDDEN是错误的,因为HIDDEN = '^'并且lowercase_lettert^中不存在

也许您打算检查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。