我在写一个程序,我需要做的一件事就是检查一个数字是否是回文。 因为某些原因,我写的不起作用:
flag = True
for j in range(0, len(listnum)):
for t in range(len(listnum) -1, -1, -1):
if listnum[j] == listnum[t]:
flag = True
print "false"
else:
flag = False
print "false"
break
if flag == True:
return True
else:
return False
打印“假”/“真”部分用于调试。 我从我写的一个函数中取出了这段代码,这就是为什么它说“returntrue/False”。在
我查的号码是906609
您的函数检查最后一个数字是否与列表中的任何其他数字不同。你想要的可能是:
这里的主要问题是for循环的嵌套。看起来你想在锁步中更新j和t,但是你从j=0开始,然后检查t的所有值,然后j=1,然后再次检查t的所有值,等等
代替嵌套循环,你可以使用循环计数器来跟踪你观察单词的距离,然后从中计算j和t。E、 g
这不是为什么你的代码不能工作的答案,但是你可能有兴趣知道有一个更简单的方法来确定一个单词是否是回文。根据定义,回文是一个不会因颠倒而改变的词。因此:
唯一需要解释的是
join
。这是必需的,因为reversed
一个接一个地返回单词的字母,所以您首先需要将它们重新组合起来。在正如在一篇评论中指出的,另一种写作方式是
word == word[::-1]
。它的意思完全相同,但可以说是有点神秘。在相关问题 更多 >
编程相关推荐