回文或不使用用户inpu练习程序

2024-10-02 16:29:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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'

如果我请求用户输入,我得到的错误是回溯(最近一次调用最后一次):

^{pr2}$

名称错误:未定义名称“tanmay”

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


Tags: 名称truestringreturnifdef错误temp
2条回答

返回的是一个布尔值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'

在Python2.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')

您可以通过删除reverse()来进一步简化isPalindrome(),从而:

^{pr2}$

相关问题 更多 >