python回文数 程序出错 不知咋改

今天和老爸在讨论程序的过程中我做上了,他的没运行成功。也没报错,但就是不给运行。他也没看出来哪里不对。加了个注释,希望有人能帮忙解答一下呀!!

M=int(input())
N=M//2 # 奇数个位数的中间位置
O=M//2 # 偶数位的

创建一个能根据输入的M 生成M位数的两端边界值a,b的函数

def shu(n):
a=10**(n-1)
b=eval('9'*n)
return a,b

sum=0 # 用来统计回文数个数
sum99=0 # 用来统计含有‘99’的回文数个数

a,b=shu(M) # 生成M位数的最小值和最大值
for i in range(a,b+1): # 遍历所有的M位的整数
i = str(i) # 变成字符串 便于后面的切片
if M % 2 != 0: # 处理奇数个数位的回文数
# 从字符串中间切开 看看前一半是否和后一半翻转过来的相同
if i[:N-1]==i[N+1::-1]:
sum+=1
print('回文数%s' %i)
if "99" in i:
sum99+=1
else:
continue # 不相同的就跳出本轮
else: # 处理偶数个数位的回文数
if i[:O-1] == i[O::-1]:
sum += 1
if "99" in i:
sum99 += 1
print(sum)
print(sum99)

输入:3
输出:0
0

希望有人能告诉我爸比程序哪里错了?

咱先不说题目。


小朋友呀,你家庭真幸福

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