2024-06-02 15:50:12 发布
网友
嗨,我正在研究一个python函数isPalindrome(x),如果百位数等于一位数,则返回True,否则返回false。我知道我必须在这里使用字符串,这就是我所拥有的:
isPalindrome(x)
def isPal(x): if str(1) == str(3): return "True" else: return "False"
str(0)是单位位置,str(2)是百位。我得到的都是假的?谢谢!在
str(0)
str(2)
数组访问是用[]完成的,而不是()。另外,如果您要查找数百个单位,请记住数组是0索引的,这里是代码的一个简短版本。在
[]
()
def is_pal(num): return num[0] == num[2] >>> is_pal('123') False >>> is_pal('323') True
您可能需要将数字作为参数,然后将其转换为字符串:
请注意,您只需检查字符串是否等于它的倒数,这适用于任何数字:
>>> x = '12321' >>> x == x[::-1] True
你的问题是str(1) == '1'和{}。您还返回读取'True'和'False'的字符串值,而不是使用实际的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'。这是因为扩展的切片表示法。在
s[::-1]
'foo'[::-1] == 'oof'
str(1)将创建一个整数值为1的字符串。它不等于整数值3的字符串值-所以它总是False。在
str(1)
您应该返回True和False,而不是字符串“True”和“False”。。。在
False
这就是你所要考虑的问题。。。(可任意长度使用)
def pal(num): forward = str(num) backward = ''.join(reversed(forward)) return forward == backward
数组访问是用
[]
完成的,而不是()
。另外,如果您要查找数百个单位,请记住数组是0索引的,这里是代码的一个简短版本。在您可能需要将数字作为参数,然后将其转换为字符串:
^{pr2}$请注意,您只需检查字符串是否等于它的倒数,这适用于任何数字:
你的问题是}。您还返回读取}值。在
str(1) == '1'
和{'True'
和'False'
的字符串值,而不是使用实际的True
和{让我为您推荐一个更简单的函数:
s[::-1]
创建字符串的反向;例如'foo'[::-1] == 'oof'
。这是因为扩展的切片表示法。在str(1)
将创建一个整数值为1的字符串。它不等于整数值3的字符串值-所以它总是False。在您应该返回
True
和False
,而不是字符串“True”和“False”。。。在这就是你所要考虑的问题。。。(可任意长度使用)
相关问题 更多 >
编程相关推荐