Python 为什么if语句返回False?

Python 为什么if语句返回False?,python,Python,的输出是奖金字母('k','talk','t^l^')应该是True,但我一直得到False 为什么?您的程序返回False,因为“k”不在“t^l^”中。如果希望返回True,小写字母必须是“t”或“l”,或者必须编辑if语句。现在,您的程序返回false,因为(隐藏中的小写字母)是false。您正在检查隐藏中的小写字母,这是false,因为隐藏='^'和小写字母是t中不存在的^ 也许您想检查当前视图中的小写字母,因为当前视图中的似乎未使用 一般来说,当你有两个选项,返回true或false,

的输出是奖金字母('k','talk','t^l^')
应该是
True
,但我一直得到
False


为什么?

您的程序返回False,因为“k”不在“t^l^”中。如果希望返回True,小写字母必须是“t”或“l”,或者必须编辑if语句。现在,您的程序返回false,因为
(隐藏中的小写字母)
是false。

您正在检查
隐藏中的小写字母
,这是false,因为
隐藏='^'
小写字母
t
中不存在的
^

也许您想检查当前视图中的
小写字母
,因为当前视图中的
似乎未使用


一般来说,当你有两个选项,返回true或false,这取决于许多条件,你可以通过注释掉所有的条件,然后一次添加一个条件,直到你确定是哪一个导致了它

为什么问题中的代码没有正确缩进?我不太理解这个函数。为什么当前视图未在任何地方使用?您正在检查“k”是否处于隐藏状态,答案是否为假。这是“and”语句的一部分,因此函数返回False。您的意思是
k不在隐藏中吗?
“if return True else return False”也是多余的。只需说“return”@ewon就可以了,但是根据stackoverflow指南,您应该尝试再现问题的一个最小示例,而不是发布整个代码块。如果你试着把问题简化为解决问题所需的信息,你会得到更好的答案。我发现,通常这样做的时候,你甚至还没打完问题就知道答案了。因此,是的,去掉当前的视图,它是不相关的。你在正确的轨道上,但隐藏不是^ ^ ^ ^ ^它只是^'ie“t”或“|”也不起作用,所以这是不正确的
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