You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中print(range())输出range对象而非数字序列的原因及解决方法

现象原因

Python 3 中 range() 函数返回的是惰性可迭代对象,而非直接生成的完整数字序列,该设计是为了节省内存(哪怕设置超大的数值范围,也不会一次性占用大量内存空间)。你直接打印该对象时,输出的是它的默认字符串表示形式,也就是你看到的 range(1, 20, 2),而非内部的元素序列。

无需循环获取range序列的实现方式

不需要依赖循环也可以输出或获取range对应的完整数字序列,常用方法如下:

  • 转换为序列容器
    可以用 list()、tuple() 等容器类直接将range对象转为对应类型的完整序列,示例:
    # 转为列表输出
    print(list(range(1, 20, 2)), end=" ")
    
  • 用解包操作符直接输出
    如果你只是需要按空格分隔打印所有元素,可以直接用 * 解包range对象传入print函数,完全不需要额外转换或循环:
    print(*range(1, 20, 2), end=" ")
    
    该写法会直接输出 1 3 5 7 9 11 13 15 17 19,符合你的预期。

内容的提问来源于stack exchange,提问作者Diksha Nain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:15:03