我是Python初学者。我写的回文程序没有使用字符串函数。
问题1:为什么第一个逻辑没有给出所需的输出?如果我错了就纠正我。
问题2:在第二个程序中,如果我跳过if语句中的i += 1
,它应该给出正确的结果,因为for
循环会自动增加i
的值。相反,只有当我包含或不包含该语句时,它才给我正确的输出。这可能是什么原因?
逻辑1:
n = input("eNTER STRING\n")
length = int(len(n))
n = str(n)
for i in range(0, int(length/2+1)):
if n[i] != n[-i - 1]:
break
if i < int(length/2 + 1):
print("not")
else:
print("yes")
逻辑2:
n = input("ENTER STRING\n")
length = int(len(n))
for i in range(0, int(length/2 + 1)):
if n[i] == n[-i - 1]:
i += 1
else:
break
if i < (length / 2):
print("not")
else:
print("yes")
提前谢谢。。
在逻辑1中,尝试
if i<int(length/2):
,而不是if i<int((length/2+1)):
在逻辑2中,即使删除
i+=1
也会得到正确的结果:您也可以使用以下代码:
第一种逻辑的解决方案是:
在第二个逻辑中,您只需要查看是否有来自左侧和右侧的字符不相同。所以你可以这样修改代码:
这里有一个快速测试一个单词是否是回文。你看很简单。你可以只通过字母来检查它的输入。这只是对你的一个想法。
所以只处理字母字符,不处理数字、符号等
相关问题 更多 >
编程相关推荐