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

Python for循环中range()函数的循环变量工作原理解答

for循环变量与相关字符串语法说明

1. 循环变量i的生效逻辑

Python的for是遍历式循环,不需要提前手动给循环变量显式赋值:

  • 循环启动后,会自动按顺序取出in后面可迭代对象(这里是range()生成的整数序列)的每一个元素,依次绑定到定义的循环变量名(也就是示例里的i)上,每轮绑定完成后就执行一次循环体中的代码。
  • 第一段示例里虽然循环体的print语句没有调用i,但逐轮赋值的过程依然会正常执行:range(10)会生成0到9共10个整数,因此循环会刚好运行10次,和是否在循环体里使用i没有关联。如果确定循环体不需要用到当前遍历的值,Python社区通常会把循环变量命名为_,明确表示这个变量仅作占位用,写法为for _ in range(10):。

2. print语句内字符串拼接与类型转换规则

(' + str(i) + ')')部分看起来复杂,主要是多个符号紧挨在一起产生了视觉混淆,核心规则分为两部分:

  • 类型转换规则:Python不允许直接用+拼接字符串和整数,会直接触发类型错误。range()生成的序列元素都是整数类型,因此必须用str(i)把整数i转换为字符串类型,才能和其他字符串做拼接操作。比如i=2时,str(i)会得到字符串值"2"。
  • 字符串拼接规则:当+两边的操作数都是字符串类型时,+的作用是把两个字符串首尾相连,拼成一个新的完整字符串。
  • 这行代码可以拆成等价的分步写法,和原代码运行效果完全一致:
for i in range(5):
    part1 = 'Jimmy Five Times ('
    part2 = str(i)
    part3 = ')'
    full_str = part1 + part2 + part3
    print(full_str)

每轮循环拼接出的输出内容依次为:

  • i=0时:Jimmy Five Times (0)
  • i=1时:Jimmy Five Times (1)
  • i=2时:Jimmy Five Times (2)
  • i=3时:Jimmy Five Times (3)
  • i=4时:Jimmy Five Times (4)

原代码末尾连续的)分别对应:字符串')'的闭合单引号、print()函数的闭合括号,两个符号紧邻才会提升阅读难度,拆分排版后逻辑非常直白。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:45:37