gpt4 book ai didi

python - 关于返回表达式

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:10 24 4
gpt4 key购买 nike

级别:初级

下面的代码会打印'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]”这一行打印出 False?我确实明白发生了什么,但我很难用简单的英语表达出来...如何描述这种行为?

这是一个常用/经常使用的“技巧”吗?

我第一次遇到这种特殊的语法是在尝试递归地解决回文练习时。似乎使递归工作的唯一方法是使用这种速记方法:

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])

如果您只考虑括号内的内容,您就会意识到,该“语句”等同于一个 bool 值,对吧?这就是为什么你也可以这样做:

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

基本上,这里返回的是一个 bool 值,表示 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] 循环使得它是“右”的第一个元素-向左'。

关于python - 关于返回表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com