Python 为什么回文的输出是正确的,而正则数的输出是不正确的?
我在检查一个数字是否是回文。为此,我计算第k个元素等于第(n-k)个元素的次数。如果该数字等于字符串的长度,则它是回文。我确实得到了正确的回文输出,但当数字不是回文时,绝对没有输出(k)。参考代码:Python 为什么回文的输出是正确的,而正则数的输出是不正确的?,python,python-2.7,palindrome,Python,Python 2.7,Palindrome,我在检查一个数字是否是回文。为此,我计算第k个元素等于第(n-k)个元素的次数。如果该数字等于字符串的长度,则它是回文。我确实得到了正确的回文输出,但当数字不是回文时,绝对没有输出(k)。参考代码: T = int(raw_input()) L = [] for i in range(0,T): alpha = int(raw_input()) L.append(alpha) print L for i in range(0,len(L)): L[i] = str(L[
T = int(raw_input())
L = []
for i in range(0,T):
alpha = int(raw_input())
L.append(alpha)
print L
for i in range(0,len(L)):
L[i] = str(L[i])
print L
for i in range(0,len(L)):
k = 0
while k < len(L[i]) :
if L[i][k] == L[i][len(L[i])-(k)-1]:
k = k + 1
print k
T=int(原始输入()
L=[]
对于范围(0,T)内的i:
alpha=int(原始输入()
L.附加(α)
打印L
对于范围(0,len(L))中的i:
L[i]=str(L[i])
打印L
对于范围(0,len(L))中的i:
k=0
而k
不要使用如此复杂的逻辑。使用简单的pythonic[:-1]反转字符串
In [1]: a = 1234554321
In [2]: def pal(a):
...: if a == a[::-1]:
...: return True
...: else:
...: return False
...:
In [3]: pal(str(a))
Out[3]: True
也许你可以试试更简洁的。这个怎么样:
def is_palindrome(n):
return str(n) == str(n)[::-1]
n = int(raw_input("Enter a number: "))
print(is_palindrome(n))
我给您的建议是,首先学习python的基础知识。此外,看看python3。这太容易了。你的算法还不错,它的实现也没有正确完成。这是你想要做的。(在蟒蛇3中)
你应该听取其他答案关于如何正确解决这个问题的建议 但是,没有人回答您提出的实际问题:为什么回文的输出正确,而常规数字的输出却不正确 看看这个while循环:
k = 0
while k < len(L[i]) :
if L[i][k] == L[i][len(L[i])-(k)-1]:
k = k + 1
k=0
而k
如果L
不是回文,则If语句中的条件计算结果为false,k
从不递增。因此k
保持为零,while循环中的条件始终为真
你有一个无限的while循环 您正在为给定字符串创建二维数组类型,但不正确。此外,你的输入方式很差
k = 0
while k < len(L[i]) :
if L[i][k] == L[i][len(L[i])-(k)-1]:
k = k + 1