我觉得我疯了 - 我正在学习Python,并从Al Sweigart的Automate the Boring Stuff中获取此代码。
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(isPhoneNumber("192-343-2345"))
结果应该并且确实返回错误,因为String对象没有isDecimal函数。我已经尝试在必要时将输入转换为int和String,但它没有解决任何问题。我没有把代码复制错误,所以我不确定发生了什么?
答案 0 :(得分:2)
此代码在Python 3上运行良好。
你说Python 2中的字符串对象没有isdecimal函数是正确的。
如果在Python 2中使用isdigit
,它将起作用。
def isPhoneNumber(text):
if len(text) !=12:
return False
for i in range(0, 3):
if not text[i].isdigit():
return False
if text[3] != '-':
return False
for i in range(4, 7):
if not text[i].isdigit():
return False
if text[7] != '-':
return False
for i in range(8, 12):
if not text[i].isdigit():
return False
return True
print(isPhoneNumber("192-343-2345"))