Python range() 的边界:为什么循环有时一次也不执行?

下面这段代码不会打印任何内容,也不会报错: for x in range(10, 7): print(x) 原因很简单:range(10, 7) 使用默认的正步长,起点已经超过终点,因此范围为空,循环体一次也不执行。 本文适合刚开始学习 Python 循环的读者,阅读约需 3 分钟。 先看懂 range() 的三个参数 range() 常见的写法有三种: list(range(4)) # [0, 1, 2, 3] list(range(2, 7)) # [2, 3, 4, 5, 6] list(range(2, 7, 2)) # [2, 4, 6] 完整形式是 range(start, stop, step): start:起点,省略时默认为 0。 stop:终点,不包含在范围内。 step:步长,省略时默认为 1。 range() 返回的是一个范围对象,并不是列表。这里使用 list(),只是为了直接观察其中的值。 对于正步长,每个值都必须满足 x < stop。因此,range(2, 7) 从 2 开始,每次增加 1,到 6 为止,不包含 7。 起点碰到或超过终点,会发生什么? 默认步长是 1,所以如果一开始就有 start >= stop,连第一个值都不符合条件: list(range(7, 7)) # [] list(range(10, 7)) # [] 空范围是正常结果,不是异常。 for 循环没有值可以遍历,就会直接跳过循环体,继续执行后面的代码: ...

2026年10月8日 · 2 分钟 · map[name:Jeanphilo]

size_t 有什么用?为什么 C++ 循环更偏爱 size_t 而不是 int

size_t 有什么用?为什么 C++ 循环更偏爱 size_t 而不是 int 副标题 / 摘要 当你写 for 循环遍历容器时,size_t 往往比 int 更安全、更贴合语义。本文用 ACERS 结构讲清楚 size_t 的定义、使用理由、风险点与工程实践,适合写 C++ 的你快速落地。 元信息 阅读时长:8-10 分钟 标签:C++,size_t,类型系统,循环,STL SEO 关键词:size_t 用途,size_t 和 int 区别,C++ 循环初始化,size_t 下溢 元描述:解释 size_t 的定义与用途,说明为什么循环索引常用 size_t,并给出安全写法与工程场景。 目标读者 C++ 初学者:对 size_t、sizeof、容器 size() 的返回类型不熟悉 中级工程师:遇到过 -Wsign-compare 警告或下溢 bug 需要写跨平台/高性能 C++ 代码的人 背景 / 动机 在 C++ 代码里,你经常能看到这样的循环: for (size_t i = 0; i < vec.size(); ++i) { ... } 不少人疑惑: 为什么不用更“直观”的 int? size_t 到底是什么?为什么是无符号? 什么时候会踩坑? 这一篇把这些问题一次讲清楚。 ...

2025年12月30日 · 4 分钟 · map[name:Jeanphilo]