回文或不使用用户输入练习程序

时间:2017-11-06 15:46:37

标签: python palindrome

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;未定义

但是当我自己输入一个字符串时,程序会成功执行

2 个答案:

答案 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)

您正在返回布尔值TrueFalse,并且您尝试将结果与值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'