python解决回文数字问题

if m>n :
a=0
flag=True
for i in range(n,m+1):
str(i)
t=str(i)
x=[int(j) for j in t]
k=x
x.reverse()

        while k==x:
                a=a+1
                return a

给定两个正整数n和m,求n到m范围内(含n和m)所有回文数的个数。所谓回文数就是将各位数字反向排列所得自然数与自己相等的数。
为什么a输出结果只能是1 请在原代码上更改一下谢谢

def func(m,n):
   if m>n :
      a=0
      for i in range(n,m+1):
         t=str(i)
         k=t
         t = t[::-1]
         if k==t:
             a=a+1
      return a
n=int(input())
m=int(input())
print(func(m,n))

不需要用到变量k,将x反转后,与当前循环中的i比较就可以了。

def reverse(n,m):
    a=0
    if m>n:
        for i in range(n,m+1):
            t=str(i)
            x=[j for j in t]
            x.reverse()
            x="".join(x)
            if str(i)==x:
                a=a+1
    return a

n,m= map(int, input().split())
print(reverse(n,m))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632