关于字符串方法

时间:2017-01-01 22:54:39

标签: python python-3.x

我目前正在通过使用Python自动化无聊的东西书并在chapter 7上遇到好奇的问题。 尝试执行以下代码时:

def isPhoneNumber(text):
    if len(text) != 12:
        return False

    for i in range(0, 3):
        if not text[i].isdecimal():
            return False

    if text[3] != "-":
        return False

    for i in range(4, 7):
        if not text(i).isdecimal():
            return False

    if text[7] != "-":
        return False

    for i in range(8, 12):
        if not text[i].isdecimal():
            return False

    return True


print("415-555-4242 is a phone number:")
print(isPhoneNumber("415-555-4242"))
print("Moshi moshi is a phone number:")
print(isPhoneNumber("Moshi moshi"))

我收到以下错误消息:

Traceback (most recent call last):
  File "automation.py", line 27, in <module>
    print(isPhoneNumber("415-555-4242"))
  File "automation.py", line 13, in isPhoneNumber
    if not text(i).isdecimal():
TypeError: 'str' object is not callable

切换str.isdigit()方法的str.isdecimal()方法允许我正确执行代码,但我想知道为什么isdecimal()方法不起作用?

2 个答案:

答案 0 :(得分:6)

该错误与isdecimal()无关。你在如何从text中提取角色时有一个错字。在

if not text(i).isdecimal():

应该阅读

if not text[i].isdecimal():

(注意方括号。)

答案 1 :(得分:1)

  File "automation.py", line 13, in isPhoneNumber
    if not text(i).isdecimal():
TypeError: 'str' object is not callable

typeError位于第13行,您将在其中调用字符串对象。使用[]而不是()