2015-11-14 280 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

相關問題