为什么 Python 2 中的 xrange 在 Python 3 中被整合成了 range?

很多人把 Python 3 的 `range` 理解成“把 Python 2 的 `xrange` 改了个名字”,这其实不准确。它真正的变化是:`range` 被重写成不可变序列类型,既保留了惰性、省内存的特性,又补上了索引、切片和高效成员判断等能力。 很多人把 Python 3 里的 range 直接等同于 Python 2 的 xrange ,这能帮助记忆,却不足以指导迁移。

为什么 Python 2 中的 xrange 在 Python 3 中被整合成了 range?

Python 实现 Excel 命名范围的创建与管理

命名范围能把 Excel 里难记的 A1:D10 变成可读的业务名称,适合公式复用和自动化脚本维护。本文用 Spire.XLS for Python 梳理创建、查询、重命名、样式处理、公式引用与删除等常见操作,并说明工作簿级与工作表级作用域该怎么选。

Python 实现 Excel 命名范围的创建与管理

SQL JOIN 日期字段时为什么匹配不到数据

SQL 里日期字段 JOIN 匹配不到,通常不是“连不上”,而是比较条件本身有偏差。常见问题集中在类型不一致、时间精度不同、LEFT JOIN 条件位置错误,以及 NULL 和时区干扰;把排查顺序理清后,定位会快很多。

SQL JOIN 日期字段时为什么匹配不到数据

Go 里的 `~int` 到底是什么意思?从底层类型到泛型约束一次讲清

Go 泛型里的 `~int` 不是“放宽类型检查”,而是把约束扩展到“所有底层类型为 `int` 的类型”。这篇文章用可编译示例拆开它的作用、类型集合语义,以及 `~[]int` 这类场景里最容易踩的边界。 很多人第一次看到 Go 泛型里的 `~int`,都会把注意力放在那个波浪线上,却不太确定它到底改变了什么。

Go 里的 `~int` 到底是什么意思?从底层类型到泛型约束一次讲清

Go 切片传参后 append,为什么有时会改到外层,有时又不会?

Go 切片传参后执行 append,结果之所以“有时影响外层、有时又不影响”,关键不在“引用类型”或“值传递”这类单句判断,而在切片头复制与底层数组复用。本文用几个短例子讲清 len、cap 和共享数组的关系,并给出业务代码里更稳妥的写法。

Go 切片传参后 append,为什么有时会改到外层,有时又不会?

Golang 编译生成的文件怎么运行

Golang 编译产物本质上就是可执行文件,但不同系统的启动方式并不完全一样。本文按“进入目录、执行文件、处理权限”三步整理 Windows、macOS 与 Linux 的常见运行方法,并补出权限不足时的处理命令,方便快速判断该输入什么命令、看到什么结果。

Golang 编译生成的文件怎么运行