【问题标题】:Getting typeerror: object of type 'builtin_function_or_method' has no len()获取类型错误:“builtin_function_or_method”类型的对象没有len()
【发布时间】: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


【解决方案1】:

你省略了括号

cardNum=inFile.readline().strip

应该是

cardNum=inFile.readline().strip()

养成在调试器下查看代码的习惯。

【讨论】:

  • 哦,我的天哪....大声笑,我真的坐在那里看代码 10 分钟
猜你喜欢
  • 1970-01-01
  • 2015-08-22
  • 2021-08-03
  • 2012-08-02
  • 2015-10-08
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
相关资源
最近更新 更多