2015-11-14 94 views
0

我不断收到一个类型错误:类型builtin_function_or_method”的对象没有LEN()获取类型错误:类型builtin_function_or_method“的对象没有LEN()

这是我的代码:

def CheckLength(num): 
    if len(num)>=13 and len(num)<=16: 
     return True 
    else: 
     return False 
def CheckType(num): 
    if num[0]=='4': 
     return 'Visa' 
    elif num[0]=='5': 
     return 'MasterCard' 
    elif num[0]=='6': 
     return 'Discover' 
    elif num[0:1]=='37': 
     return 'American Express' 
    else: 
     return 'Invalid Entry' 
def Step1(num): 
    total=0 
    length=len(num) 
    for i in range(length-1,-2,-2): 
     double=int(num[i]*2) 
     if double>9: 
      double=double[0]+double[1] 
      total+=double 
     else: 
      total+=double 
     return total   
def Step2(num): 
    total=0 
    length=len(num) 
    for i in range(length-1,-1,-2): 
     total+=i 
    return total 
def Step3(num): 
    total=Step1(num)+Step2(num) 
    if total%10==0: 
     return True 
    else: 
     return False 
def main(): 
    inFile=open('pa7.cards','r') 
    cardNum=inFile.readline().strip() 
    while cardNum!='99999': 
     validLength=CheckLength(cardNum) 
     validType=CheckType(cardNum) 
     if validLength==True and validType==True: 
      print(cardNum,"valid") 
     else: 
      print(cardNum,"invalid") 
     cardNum=inFile.readline().strip 
    inFile.close() 
main()  

我的数据文件看起来像这样:

4388576018402626 

4388576018410707 

37271983 

5190828258102121 

99999 

有谁知道我为什么得到这个错误?你能看到我遇到的其他明显问题吗?

+0

每当您看到该错误消息时,请确保您的所有函数调用实际上都有函数调用括号。 – user2357112

+0

或者只是打印出你调用'len()'的变量的值。 – Barmar

回答

1

您在

cardNum=inFile.readline().strip 

冷落的括号应该

cardNum=inFile.readline().strip() 

获取到的调试器下看你的代码的习惯。

+0

哦,我的天啊....大声笑,我从字面上坐在那里看着代码为10分钟直 – 52655841856

相关问题