【发布时间】:2016-02-15 16:42:38
【问题描述】:
我不断收到类型错误:'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
有人知道我为什么会收到这个错误吗?您能看到我可能遇到的任何其他明显问题吗?
【问题讨论】:
-
每当您看到该错误消息时,请确保您的所有函数调用实际上都有函数调用括号。
-
或者直接打印出你调用
len()的变量的值。
标签: python python-3.x