Python-当与长度一起使用时,需要了解()与[]的帮助吗

Python-当与长度一起使用时,需要了解()与[]的帮助吗,python,Python,我是Python新手,我正在处理这个问题,我真的不知道为什么当我将括号更改为括号时会出现错误,或者为什么我不能只使用len(text-1) 我正在查看以下代码: def reverse(text): result = "" length = len(text) for i in text: result += text[length - 1] length -= 1 return result 非常感谢任何有助于理解这一点的帮助

我是Python新手,我正在处理这个问题,我真的不知道为什么当我将括号更改为括号时会出现错误,或者为什么我不能只使用len(text-1)

我正在查看以下代码:

def reverse(text):
    result = ""
    length = len(text)
    for i in text:
        result += text[length - 1]
        length -= 1
    return result
非常感谢任何有助于理解这一点的帮助


谢谢

当您使用
len(text-1)
时,您尝试从
str
text
)中减去
int
1
)。这在python中是不受支持的操作(而且是不可能的)。要获取所需字符串的一部分,您必须使用
text[length-1]

您不能使用
text-1
,因为这没有意义;不能从字符串中提取1

现在,对于
len(…)
这是一个函数,因此调用的
()
而不是
[]
。你把你想要的长度传递给它


text[length-1]
在某个位置索引到字符串中,并遵循列表语法进行索引或子脚本编写。

python内置函数len()返回参数中对象的长度(以数字表示),例如

temp = [1, 2, 3, 4]
length = len(temp)
在这种情况下,len()将返回4。但是如果有人写信

length = len(temp-1)
然后

临时工-1


不是有效的对象,因此无法使用它。

Python括号

圆括号在Python中扮演着许多不同的角色这些是它们扮演的一些主要角色:

数学角色:

Python括号的作用类似于数学中的括号,因为它们位于

这意味着:

>>> 3 + 4 * 2
>>> (3 + 4) * 2
返回:

12
14
而括号中:

False and (False or True) and True
返回:

12
14
但这还不是全部,它们的优先级也扩展到布尔表达式:

例如:

False and False or True and True
list
tuple = (2, 4)
当在
之前执行
时,计算结果为
True
。但是,如果添加一些括号:

False and (False or True) and True
之前执行时,其计算结果为
False

元组

在python中,当您将某个内容放在一个符号中时,您使用
()
表示法

功能

声明或调用函数时,始终需要在函数名后添加括号。把它们想象成一个篮子,把论点放进去。如果您忘记了它们,Python解释器会认为您正在调用一个变量,例如:

False and False or True and True
list
tuple = (2, 4)
这是一个名为list的变量,没有任何特殊作用

list() #Empty basket
但是,这是对函数的调用,因为存在一个“篮子”

方括号

方括号还有很多作用:

列表

在python中,如果要声明一个而不是一个元组,可以使用方括号

列表理解

列表理解实际上相当复杂,所以要了解更多信息,只需知道它使用方括号即可

仰望

方括号的主要用途是在列表、元组或字典中查找值。把它想象成谷歌搜索栏:你写下你想要的,它告诉你它有什么。例如:

False and False or True and True
list
tuple = (2, 4)
如果希望得到4,则需要查找元组的第二个值:

tuple[1] #The first value is 0
切片

切片就是只获取列表的某些部分(或者元组、字典甚至字符串)。下面是Greg Hewgill()的解释:

还有阶跃值,可与上述任何一项一起使用:

a[开始:结束:一步]#一步一步地开始,而不是结束

要记住的关键点是:end值表示第一个 不在选定切片中的值。那么,两者之间的区别就结束了 “开始”是选定的元素数(如果步骤为1,则 默认值)

另一个特性是开始或结束可能是负数,这 表示它从数组的末尾而不是开始计数。 因此:

a[-1]#数组中的最后一项a[-2:]#数组中的最后两项 数组a[:-2]#除最后两项外的所有内容

如果项目比您要求的要少,Python对程序员是很好的 对于例如,如果您请求一个[:-2],而a只包含一个 元素,则会得到一个空列表,而不是一个错误。有时候你 希望出现错误,因此您必须意识到可能会发生这种情况

我希望这为解释圆括号和方括号之间的区别提供了有用的见解


这意味着在你的问题中,
len()
是一个函数,你把
文本
放在篮子里。但是,当您调用
text[length-1]
时,您正在查找位置
length-1

处的值,您无法执行
len(text-1)
的原因是,文本是一种试图反转的字符串类型,并且作为一个字符串,您无法将其与数字组合(除非它们是字符串,但情况不同)不会出错。因此,您可以执行
len(text)-1
,因为len(text)将等于文本的长度(假设为4),然后您可以从4中减去1,因为4是一个整数

在执行
text[length-1]
时,之所以需要括号而不是括号,是因为在python中,试图从字符串中获取单个值需要使用
string[]
并将字符串中的一个位置放在[]内。使用partakes调用函数,如
print(string)
len(text)
,因此放置
text(length-1)
会产生一个错误,基本上说程序没有名为“text”的函数,它不知道该做什么


希望这有帮助。如果您还有任何问题,请告诉我。

您会遇到一个错误,因为字符串减去数字不起作用。您的循环也有些毫无意义。顺便说一句,如果你想要字符串的反向,你可以使用反向切片:“mystring”[::-1]==“gnirtsym”@cricket_007:Eehenhyu似乎是一个初学者,通过戳一些现有代码(可能是从导师那里)来学习