我是Python的新手,我正在搞乱这个,我不知道为什么当我将括号更改为括号时出现错误,或者为什么我可以'只需使用len(text - 1)。
我正在看这段代码:
def reverse(text):
result = ""
length = len(text)
for i in text:
result += text[length - 1]
length -= 1
return result
非常感谢任何理解这一点的帮助!
谢谢!
答案 0 :(得分:1)
当您使用len(text - 1)
时,您尝试从int
(1
)中减去str
(text
)。它是python中不受支持的操作(而且,不可能)。要获得所需字符串的一部分,您必须使用text[length - 1]
。
答案 1 :(得分:1)
您无法使用text - 1
,因为这没有意义;你不能从字符串中取1。
现在,至于len(...)
这是一个函数,因此调用()
而不是[]
。你传递的东西你想要的长度。
text[length - 1]
正在索引字符串,位于某个位置,并遵循索引或子脚本的列表语法。
答案 2 :(得分:1)
Python圆括号
圆括号在Python中扮演许多不同的角色,这些角色是他们扮演的主要角色:
数学角色:
Python括号在数学中就像括号一样,因为它们位于Python Priority Precedence的顶部
这意味着:
>>> 3 + 4 * 2
返回:
12
括号括号:
>>> (3 + 4) * 2
返回:
14
但并非如此,他们的优先级也扩展到布尔表达式:
例如:
False and False or True and True
在True
之前执行and
时,评估为or
。但是,如果添加一些括号:
False and (False or True) and True
在False
or
时评估为and
元组
在python中,当您在tuple中添加内容时,使用()
表示法。
功能的
声明或调用函数时,总是需要在函数名后添加括号。把它们想象成一个放入参数的篮子。如果你忘了它们,Python解释器会认为你正在调用一个变量,例如:
list
这是一个名为list的变量,并没有什么特别的
list() #Empty basket
然而,这是对函数的调用,因为有一个"篮子"
Square Brackets
Square Brackets也有很多角色:
解释
在python中,如果要声明list而不是元组,则使用方括号。
列表理解
列表理解实际上非常复杂,read this以获取更多信息,但只知道它使用方括号
查找
方括号的主要用途是在列表,元组或字典中查找值。把它想象成谷歌搜索栏:你写下你想要的东西,它会告诉你它有什么。例如:
tuple = (2, 4)
如果你想获得4,你需要查找元组的第二个值:
tuple[1] #The first value is 0
切片
切片只是仅采用列表的某些部分(或元组,字典甚至字符串)的想法。以下是Greg Hewgill的解释(https://stackoverflow.com/a/509295/7541446):
还有步骤值,可以与上述任何一个一起使用:
a [start:end:step] #start through not past end,by step
要记住的关键点是:结束值代表第一个 不在选定切片中的值。所以,结束之间的区别 并且start是所选元素的数量(如果步长为1,则为 默认值)。
另一个特征是开始或结束可能是负数,其中 意味着它从数组的末尾而不是从开头开始计数。 所以:
a [-1]#数组中的最后一项a [-2:]#最后两项 数组a [: - 2]#除最后两项外的所有内容
如果项目少于您的要求,Python对程序员很友好 对于。例如,如果您要求[: - 2]并且只包含一个 你得到一个空列表而不是错误。有时你 我更喜欢这个错误,所以你必须意识到这可能会发生。
我希望这为解释括号和方括号之间的区别提供了有用的见解。
这意味着在您的问题中len()
是一个将text
放入购物篮的功能。但是,当您致电text[length-1]
时,您正在查找位置length-1
答案 3 :(得分:0)
python内置函数len()返回参数中对象的数量长度,例如
temp = [1, 2, 3, 4]
length = len(temp)
然后在这种情况下len()将返回4。但如果有人写
length = len(temp-1)
然后
TEMP-1
不是有效的对象,因此您无法使用它。
答案 4 :(得分:0)
你不能做len(text-1)
的原因是因为text是你试图反转的字符串类型,并且是一个字符串你不能将它与数字组合(除非它们是一个字符串,但这是一个不同的故事)没有收到错误。因此你执行len(text)-1
因为len(文本)等于文本的长度(假设为4),然后你可以从4中减去1,因为4是一个整数。
在执行text[length-1]
时需要括号而不是括号的原因是因为在python中尝试从字符串中获取单个值需要使用string[]
并在字符串中放置一个位置在 - 的里面 []。您使用partakes来调用print(string)
或len(text)
等函数,因此将text(length-1)
放入会产生一个错误,该错误基本上表示程序没有名为“text”的函数,而且它没有知道要做什么。
希望这会有所帮助。如果您还有其他问题,请告诉我。