python - 在 Python 中分配给 for 循环变量时的令人困惑的行为
问题描述
我很好奇为什么下面的 Python 代码会输出数字 10..29(第 1 步)。使用 Python 2.7 和 3 测试。
for i in range(20):
i += 10
print(i)
所以i += 10
被执行,但只执行一次,尽管它在循环中。这是一个非常令人困惑的行为。
为什么 Python 会以这种令人困惑的方式表现?
解决方案
实际上,i += 10
每次都会执行,但不影响i
循环开始时的值。
for i in range(20):
# generator range(20) assigns numbers from 0 to 19 to i
i += 10
# i is now 10 to 29; generator not affected
print(i)
推荐阅读
- javascript - 从网页发送whatsapp消息而不打开whatsapp web
- python - 获取 PygAnimation 对象的 x 和 y 位置以进行碰撞检测
- spring - Spring Flowable Vs State Machine,使用哪一个
- javascript - 使用javascript在shadow root中获取html元素
- r - 从多页PDF到DataFrame R
- swiftui - 根据@State 变量的值变化重新加载视图
- c# - 运行寻路代码时Unity中的无限循环
- javascript - 提交后如何关闭引导模式?
- ios - 使用 GitHub Actions 构建 iOS React Native 应用程序
- javascript - 不要在 html 中按下按钮获得价值