这是一次考试的问题。可以说我们有一个函数def回文,我们称它为。如果是回文,则该函数应返回True。
def palindrome(s):
...
palindrome("radar")
为了检查它是否是回文,我试图反转该字符串以查看它是否相同。我使用了s.find(s[::-1])
。
考试的替代方法是:
return bool(s.find(s[::-1]))
return not(bool(s.find(s[::-1]
我不明白这两种选择之间的区别,有人可以解释吗?
答案 0 :(得分:1)
等于运算符'=='返回True或False
def palindrome(s):
reverse_str = s[::-1]
return s == reverse_str
palindrome("radar")
是
查找()方法查找指定值的第一次出现,或者如果找不到该值,则返回-1。
def palindrome(s):
reverse_str = s[::-1]
return s.find(reverse_str)
palindrome("radar")
0
答案 1 :(得分:0)
return bool(s.find(s[::-1]))
这与您的解决方案相同。唯一的区别是它被强制转换为布尔类型。
bool()方法使用以下命令将值转换为布尔值(True或False) 标准真相测试程序。
return not(bool(s.find(s[::-1]))
与先前的解决方案相同,但是结果被翻转。为什么要翻转它?当找到结果为0时,结果为-1。结果为False(0)和True(-1)。所以很奇怪,当发现它给出False,而当没发现它给出True。这就是为什么它被翻转。