def reverse(string):
return string[::-1]
def isPalindrome(string):
temp=reverse(string)
if temp==string:
return True
else:
return False
string='tanmay' # input('enter a word')
ans=isPalindrome(string)
if ans==1:
print' Yes palindrome'
else:
print' no its not a palindrome'
如果我要求用户输入错误我得到的是Traceback(最近一次调用最后一次):
File "C:/Python27/prac06-2.py", line 10, in <module>
string=input('enter a word')
File "<string>", line 1, in <module>
NameError:name&#39; tanmay&#39;未定义
但是当我自己输入一个字符串时,程序会成功执行
答案 0 :(得分:1)
在python 2.7 input()
中评估给定的输入,您应该使用raw_input()
将数据作为字符串读入。另一方面,temp==string
计算为布尔值,因此您不需要将其放在if语句中,只需return temp==string
def reverse(string):
return string[::-1]
def isPalindrome(string):
temp=reverse(string)
return temp==string
string=raw_input('enter a word')
if isPalindrome(string):
print(' Yes palindrome')
else:
print(' no its not a palindrome')
您可以将isPalindrome()
移至:
reverse()
def isPalindrome(string):
return string == string[::-1]
答案 1 :(得分:0)
您正在返回布尔值True
或False
,并且您尝试将结果与值1
进行比较。这是你应该如何调用它。
ans = isPalindrome(string)
if ans: # you can also do (if ans == True)
print 'Yes, it is a palindrome'
else:
print 'No, it is not a palindrome'