TypeError:“类型”对象不可下标

2024-09-30 16:40:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试向Python添加另一种名为“Lua”的编程语言,其中有一个名为string.sub的函数

但有一个问题:

这是我的代码:

#Lua in Python

class string:
    def find(stringVariable, stringValue):
        output = stringVariable.find(stringValue)
        return output

    def sub(stringVariable, indexValueStart, *indexValueEnd):
        indexValueStart = int[indexValueStart]
        indexValueEnd = int[indexValueEnd]
        output = stringVariable[indexValueStart:indexValueEnd]
        return output

    def gsub(stringVariable, stringIndex):
        stringN = stringVariable[:stringIndex] + stringVariable[stringIndex + 1:]
        return stringN
        #gsub is not finished yet

a = input()

b = string.find(a, "abc")

c = string.sub(a, b, 5)

print(c)

它给出以下输出(错误):

nnnabcmmm
Traceback (most recent call last):
  File "C:\Users\Mimi Mimiyov\Desktop\lua.py", line 23, in <module>
    c = string.sub(a, b, 5)
  File "C:\Users\Mimi Mimiyov\Desktop\lua.py", line 9, in sub
    indexValueStart = int[indexValueStart]
TypeError: 'type' object is not subscriptable
>>>

Tags: inoutputstringreturndeffindintlua
1条回答
网友
1楼 · 发布于 2024-09-30 16:40:02

int是一个函数,因此您可以执行int()而不是int[] 并删除indexValueEnd中的*

class string:
    def find(stringVariable, stringValue):
        output = stringVariable.find(stringValue)
        return output

    def sub(stringVariable, indexValueStart, indexValueEnd):
        indexValueStart = int(indexValueStart)
        indexValueEnd = int(indexValueEnd)
        output = stringVariable[indexValueStart:indexValueEnd]
        return output

    def gsub(stringVariable, stringIndex):
        stringN = stringVariable[:stringIndex] + stringVariable[stringIndex + 1:]
        return stringN
        #gsub is not finished yet

a = input()

b = string.find(a, "abc")
print(b)
c = string.sub(a, b, 5)

print(c)

相关问题 更多 >