2016-08-24 52 views
0

该程序检查字符串是否是回文,如果是,则返回true。当我在Python IDLE中运行它时它工作正常。但不接受在线测试网站,返回此错误:“类型错误:‘诠释’对象未标化的程序工作,但TypeError:收到'int'对象不可订阅。为什么?

string="racecar" 
def is_palindrome(string): 
     if string == string[::-1]: 
      return True 
     else: 
      return False 

这是为什么?据我所知,我不用int的工作。

+1

测试位点可能是使用非字符串作为输入 –

+0

此错误指示的“字符串”变量传递给该方法是一个整数,而不是一个串(假定在该点产生的异常) – Aviad

+0

是否检测现场总是使用“赛车”作为输入,还是可以组成自己的输入? –

回答

0

你显然希望你的函数只能对字符串进行操作,除非你使用了一个相当新的Python支持类型提示,否则你不能真正告诉Python。所以只需投下即可蝙蝠弦。几乎所有的东西都可以转换成一个字符串,然后你的函数无论传递什么东西都会起作用,或者至少抛出一个体面的错误。

def is_palindrome(string): 
     string = str(string) # add this line 
     if string == string[::-1]: 
      return True 
     else: 
      return False 
相关问题