测试失败

snlixing 2018-09-19 03:32:19
看到一个题,求回数

回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数

红色是主体部分,为什么测试失败呢

def is_palindrome(n):
a=str(n)
for i in range(len(a)):
if a[i]==a[len(a)-i-1]:
return True



output = filter(is_palindrome, range(1, 1000))
print('1~1000:', list(output))
if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]:
print('测试成功!')
else:
print('测试失败!')




...全文
388 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
snlixing 2018-09-22
  • 打赏
  • 举报
回复
引用 2 楼 seakingx 的回复:
算法不对。

def is_palindrome(n):
    a = str(n)
    ret_flag = True
    for i in range(len(a)/2):
        if a[i] != a[len(a) - i - 1]:
            ret_flag = False
    return ret_flag


output = filter(is_palindrome, range(1, 300))
print('1~300:', list(output))
if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]:
    print('测试成功!')
else:
    print('测试失败!')

大神,我的那个算法有什么问题吗
snlixing 2018-09-21
  • 打赏
  • 举报
回复
为啥测试失败呢?
陈年椰子 2018-09-21
  • 打赏
  • 举报
回复
陈年椰子 2018-09-21
  • 打赏
  • 举报
回复
算法不对。

def is_palindrome(n):
a = str(n)
ret_flag = True
for i in range(len(a)/2):
if a[i] != a[len(a) - i - 1]:
ret_flag = False
return ret_flag


output = filter(is_palindrome, range(1, 300))
print('1~300:', list(output))
if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]:
print('测试成功!')
else:
print('测试失败!')

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧