2017-10-08 51 views
0

我觉得我要疯了 - 我正在学习Python,并从Al Sweigart的Automate the Boring Stuff中获得此代码。这是来自一本Python书,代码抛出错误,应该这样做

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")) 

结果应该返回错误,因为字符串对象没有isDecimal函数。我已经尝试在必要时将输入转换为int和String,但它不能解决任何问题。我没有复制错误的代码,所以我不确定发生了什么事情?

+3

如果函数*应该引发错误,并且引起错误,那么问题是什么?你想达到什么目的? – jwodder

+0

你的意思是'isdigit'? – jonrsharpe

回答

2

此代码工作正常Python的3

你是说字符串对象正确在Python中没有isdecimal功能2.

如果你在Python 2

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")) 
使用 isdigit它将工作
相关问题