通过另一个程序调用回文函数时输出错误

时间:2017-12-31 06:43:14

标签: python palindrome

我正在努力解决这个问题

  

回文数字两种方式相同。由两个2位数字的乘积制成的最大回文是9009 = 91 × 99.

下面是我用来查找数字是Palindrome的代码。

 #largest product of two  digit no.s  which is a palindrome eg 91*99 = 9009
        def check_palindrome(str):
            x = len(str)
            for i in range(x//2):
                if str[i] == str[x-1-i]:
                    flag = 0
                else:
                    flag = 1
            if flag== 0:
                print "palindrome"
            else:
                print " not palindrome"
        check_palindrome('9009')
i= 91
j= 99
product = i* j
print product
check_palindrome('product')

当我在计算产品后调用函数check_palindrome()时,程序会给出错误的输出,而在单独调用时会给出正确的输出。

1 个答案:

答案 0 :(得分:4)

您正在将文字字符串 "product"传递给您的回文函数,这不是回文:

check_palindrome('product')

删除单引号并转换为字符串:

check_palindrome(str(product))

传递表示product中存储的整数的字符串。

顺便说一句,这是一种测试字符串是否为回文的简单方法:

def check_palindrome(s):
    return s == s[::-1]

将字符串s的反向与自身进行比较。如果两者相等,它就是一个回文。