2012-03-11 49 views
0

我在Python 3中制作了一个程序,它测试一个数字是否是回文。显然它没有完成,但是当我尝试运行它时:TypeError,回文测试(Python 3.x)

#!/usr/bin/env python 
def testforpalin(): 
    i = 101 
    lop = list(str(i)) 
    print(lop) 
    len(lop) 
    if lop[0] == lop[len-1]: 
     print("hi") 
testforpalin() 

TypeError: unsupported operand type(s) for -: 'builtin_function_or_method' and 'int' 

我得到那个错误。我该如何解决?

在该行

if lop[0] == lop[len-1]: 

你有len-1其中len是给你的字符串的长度(因此错误的函数

回答

3

- 你正在尝试做减法,其中值之一是len这是一个“builtin_function_or_method”)。你大概的意思lop[len(lop)-1](这工作),但它会更简单的事:

if lop[0] == lop[-1]: 

因为[-1]为您提供了一个字符串或数组的最后一个元素(和[-2]给你下一个到最后一个,等等) 。