python – 关于返回表达式

级别:初学者

以下代码将打印’False’

def function(x):
    if len(x) == 5: return True
    else: return x[0] == x[-1]

print function('annb')

为什么行“else:return x [0] == x [-1]”print False?
我确实理解发生了什么,但我很难将其变成简单的英语……这种行为怎么能被描述?

这是一种常用/常用的“技术”吗?

在尝试解决回文运动recursivley时,我首先遇到了这种特殊的语法.似乎使递归工作的唯一方法是使用这种速记方法:

def isPalindrome(s):
 if len(s) <= 1: return True
 else: return s[0] == s[-1] and isPalindrome(s[1:-1])

print isPalindrome('anna')

谢谢
巴巴

最佳答案 对不起,我不完全确定你的意思,但在这里想一想:

return (x[0] == x[-1])

如果您只考虑括号内的内容,您会意识到,’语句’等同于布尔值,对吧?这就是你也可以这样做的原因:

if x[0] == x[-1]

所以基本上,这里返回的是一个布尔值,表示x [0]是否等于[-1].

可以更明确地将此语句扩展为以下内容:

if x[0] == x[-1]: # if this is true
    return True # then return true
else:
    return False

但正如你所看到的,条件和你想要返回的内容都是相同的值,所以你只需要像你看到的那样简写:

return x[0] == x[-1]

对不起,如果我误解了你的问题.

编辑:如果你提到负指数(x [-1]),在Python中,负指数基本上是“环绕”,所以其中x [0]将是从“从左到右”的第一个元素,所以到说,x [-1]循环,这是从“从右到左”的第一个元素.

点赞