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