级别:初学者
以下代码将打印’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]循环,这是从“从右到左”的第一个元素.