如何在Python中检查回文?

2024-06-02 15:50:12 发布

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

嗨,我正在研究一个python函数isPalindrome(x),如果百位数等于一位数,则返回True,否则返回false。我知道我必须在这里使用字符串,这就是我所拥有的:

def isPal(x):
    if str(1) == str(3):
        return "True"

    else:
        return "False"

str(0)是单位位置,str(2)是百位。我得到的都是假的?谢谢!在


Tags: 函数字符串falsetruereturnifdef单位
3条回答

数组访问是用[]完成的,而不是()。另外,如果您要查找数百个单位,请记住数组是0索引的,这里是代码的一个简短版本。在

def is_pal(num):
    return num[0] == num[2]

>>> is_pal('123')
False
>>> is_pal('323')
True

您可能需要将数字作为参数,然后将其转换为字符串:

^{pr2}$

请注意,您只需检查字符串是否等于它的倒数,这适用于任何数字:

>>> x = '12321'
>>> x == x[::-1]
True

你的问题是str(1) == '1'和{}。您还返回读取'True''False'的字符串值,而不是使用实际的True和{}值。在

让我为您推荐一个更简单的函数:

def isPal(x):
    s = str(x)          # convert int to str
    return s == s[::-1] # return True if s is equal to its reverse

s[::-1]创建字符串的反向;例如'foo'[::-1] == 'oof'。这是因为扩展的切片表示法。在

str(1)将创建一个整数值为1的字符串。它不等于整数值3的字符串值-所以它总是False。在

您应该返回TrueFalse,而不是字符串“True”和“False”。。。在

这就是你所要考虑的问题。。。(可任意长度使用)

def pal(num):
    forward = str(num)
    backward = ''.join(reversed(forward))
    return forward == backward

相关问题 更多 >