【发布时间】:2018-09-01 23:01:15
【问题描述】:
我期待返回 True,但返回的是 None。
我在代码中添加了一些打印语句来帮助调试。它显示'print(“Got True”)'语句运行,所以我知道代码在'return True'之前结束在代码的正确分支中,但由于某种原因我得到'None'。然而,当我输入一个不是回文的单词时,'return False' 效果很好。
感谢您的帮助。
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
def is_palindrome(word):
print(word)
if len(word) <= 1:
print("Got True")
return True
else:
print(len(word))
if first(word) == last(word):
is_palindrome(middle(word))
else:
print("Got False")
return False
print(is_palindrome('allen'))
print("\n")
print(is_palindrome('redivider'))
输出:
allen
5
Got False
False
redivider
9
edivide
7
divid
5
ivi
3
v
Got True
None
【问题讨论】:
-
如果不返回任何内容,则返回值为
None。在某些情况下,您不会返回任何内容,即此处:is_palindrome(middle(word))。
标签: python return-value palindrome