【发布时间】:2018-10-01 23:30:36
【问题描述】:
所以我正在尝试解决一个挑战here,并且我编写了一个基本算法来解决这个问题。该算法的功能之一是将函数的输入 n 转换为字符串,对除第一个字符之外的每个字符进行切片,然后使用以下命令将其转换回整数:o = int(str(n[:1]))。但是,当我这样做时,它给了我这个错误:TypeError: 'int' object is not subscriptable。我找到了另一个案例here,但它似乎并没有解决我的问题。这个错误是什么意思,我怎样才能摆脱我的代码?
全功能:
def utopianTree(n):
o = int(str(n[:1]))
n = int(str(n[1:]))
for i in range(1, n):
if n == 0:
o += 1
elif i % 2 == 0:
o *= 2
elif i % 2 != 0:
o += 1
i += 1
return o
【问题讨论】:
-
n不是整数吗?如果是这样,Python 是对的,您不能在n上使用下标运算符。也许您的意思是先将n转换为字符串? -
n是一个整数,你不能对整数进行切片,因为它们不是序列。 -
你的英语说“convert, slice, convert”,但你的代码说“slice, convert, convert”。
-
你的意思是
int(str(n)[:1])? -
你为什么要进行字符串操作?除了读取输入之外,这个问题完全涉及整数。
标签: python algorithm compiler-errors runtime-error