python字符串切片器问题

时间:2015-03-12 03:34:00

标签: python string

大家好我正在尝试设计一个代码,该代码从用户那里获取产品代码然后切成两部分,它们的关键部分是第一部分,因为第一部分从索引0到3(不包括3虽然)必须在大写字母中。 所以我创建了这段代码:

code=input("Enter a product code: ")


def test(code):
    set1=test[0 : 3]
    set2=test[3 : 8]

    if set1.isupper():
        print("Correct Code")


test(code)

现在这个代码的问题是当我运行它时出现了这个错误:

    set1=test[0 : 3]
TypeError: 'function' object is not subscriptable

任何人都知道为什么这个错误会不断出现?我只是输入了一个虚假的值,如:HHHH343GG3,但它发生了,

请告诉我您的想法和建议。谢谢。

1 个答案:

答案 0 :(得分:0)

您正在呼叫set1=test[0 : 3]而不是set1=code[0 : 3]

code是传入的参数,test是您要调用的函数的名称:

>>> test
<function test at 0x1003bcae8>
>>> code
'foo'
>>> test[0:3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'function' object is not subscriptable
>>> code[0:3]
'foo'
>>> 

以下是您编辑的代码:

code=input("Enter a product code: ")

def test(code):
    set1=code[0 : 3]
    set2=code[3 : 8]
    if set1.isupper():
        print("Correct Code")

test(code)