我正在学习python,在这个问题上陷入了困境。当数字为回文而不是返回True时,代码将返回None
当数字为回文而不是返回True时,代码将返回None我正在学习python,在这个问题上陷入了困境。当数字为回文而不是返回True时,代码将返回None,python,python-3.x,Python,Python 3.x,当数字为回文而不是返回True时,代码将返回None def is_palindrome(n): string = str(n) length = len(string) if length%2 == 0: for k in range(0, int(length/2)): if string[k] == string[length-k-1]: continue re
def is_palindrome(n):
string = str(n)
length = len(string)
if length%2 == 0:
for k in range(0, int(length/2)):
if string[k] == string[length-k-1]:
continue
return True
else:
return False
if length%2 != 0:
for k in range(0, int(length/2)):
if string[k] == string[length-k-1]:
continue
return True
else:
return False
print(is_palindrome(1221))
我知道你是怎么做的,我不知道你是否希望我保留你的解决方案的方法,但这里有一个更简单的方法,你可以解决这个问题
def pal(x):
if str(x) == (str(x)[::-1]):
return True
else:
return False
此函数仅检查给定的数字是否相同。希望这有帮助。对于您的方法,问题可能与您使用的“continue”有关,我个人不太使用“continue”,尽管我知道它可能非常有用。由于continue的原因,永远无法返回True。如果您还没有返回False,那么您可能还希望在循环结束时返回True;返回真应该是什么意思?continue立即跳转到最内部循环的开头,并且控件永远不会到达return True学习使用调试器:甚至更短:return strx==strx[::-1]感谢您的帮助,这让我的代码非常有用easy@Matthias哇,真不敢相信我错过了,谢谢你的升级。