我目前正在通过使用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()方法不起作用?
答案 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行,您将在其中调用字符串对象。使用[]
而不是()