当前位置: 首页 > news >正文

Python小练习系列 Vol.11:回文数筛选(filter + 字符串反转)

🧠 Python小练习系列 Vol.11:回文数筛选(filter + 字符串反转)

🔍 本期我们用 Python 的 filter() 函数结合字符串反转技巧,一行代码搞定“回文数”的判断与筛选!


在这里插入图片描述

🧩 一、题目描述

回文数 是指从左向右读、从右向左读都一样的整数,例如:

121、888、909、12321 都是回文数。

请你写一个函数 is_palindrome(n) 判断一个整数是否是回文数,并使用 filter() 函数筛选出 1~1000 以内所有的回文数。


🧠 二、思路解析

我们可以把数字转换成字符串,然后判断它是否等于其反转字符串:

str(n) == str(n)[::-1]

👨‍💻 三、Python代码实现

def is_palindrome(n):
    return str(n) == str(n)[::-1]

# 用 filter 过滤出所有回文数
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('测试失败!')

🧩 五、小结与要点

技巧说明
str(n) == str(n)[::-1]判断是否为回文字符串
filter(func, iterable)过滤出符合条件的元素
list()将 filter 结果转为列表

💡 六、拓展思考

  • 🤔 能否不使用字符串判断回文数?(使用整数反转算法)
  • 🚀 找出所有 5 位的回文数?
  • 🎨 可视化回文数在数字范围中的分布?

❤️ 结语

这题虽然简单,但用到了 Python 函数式编程、字符串操作等基础能力,是非常好的练习题!


👉 点个赞 👍 + 收藏 🌟,让你的代码优雅又简洁!

http://www.dtcms.com/a/100042.html

相关文章:

  • AF3 nonensembled_transform_fns函数解读
  • AI日报 - 2025年03月31日
  • Qt WebSockets使用
  • 《非暴力沟通》第七章 “用全身心倾听” 总结
  • 算法每日一练 (23)
  • 深入理解 Windows 进程管理:taskkill 命令详解
  • 《电子武林争霸赛:MOSFET少侠 vs 三极管长老》
  • axios使用
  • 网络空间安全(44)Web实战篇
  • 硬件学习笔记--56 电击防护方式分类介绍
  • 目标检测中COCO评估指标中每个指标的具体含义说明:AP、AR
  • 基于YOLOv8的PCB缺陷检测--补充实验
  • [C++面试] 智能指针面试点(重点)续3
  • 【视觉提示学习】3.28阅读随想
  • 11. STL的使用
  • springBoot统一响应类型3.4版本
  • LlamaIndex实现(基于PDF|CSV文件)RAG检索增强生成:NaiveRAG
  • 量子计算:未来计算技术的革命性突破
  • 【奶茶经济学的符号暴力本质】
  • 【软件开发】可复用的数据库导入工具类
  • J2EE框架技术 第五章 Spring注入与作用域
  • 【C++】STL库_stack_queue 的模拟实现
  • 【leetcode】通过两种遍历方式构造二叉树
  • 前端页面缓存问题
  • opencv之指纹验证
  • spring-security原理与应用系列:securityFilterChainBuilders
  • 职测-言语理解与表达
  • SD-WAN组网方案
  • pycharm相对路径引用方法
  • C++ 多态:面向对象编程的核心概念(一)