鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 7

[已解决]关于FOR中的I

[复制链接]
发表于 2017-4-25 19:28:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码:
for i in range(6):
    print('+=前的值=',i)
    i = i + 2
    print(i)

列印:
+=前的值= 0
2
+=前的值= 1
3
+=前的值= 2
4
+=前的值= 3
5
+=前的值= 4
6
+=前的值= 5
7

不明白的问题是..
第一次因为还未执行i = i + 2
所以就是0=0+2  得出来的值是2---
但此时的I不是已经等于2了吗?
那为何第二次迭代时为何 I 不是2而是1
也就是说为何第二次不是 I = 2+2 得出来的值为何是3而不是4呢?
最佳答案
2017-4-25 19:43:19
for循环或者成为for迭代是每次从可迭代对象中取值,直至取完。并不受循环体内值的改变的影响。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-25 19:39:00 | 显示全部楼层
从实验结果说明每次i取出range()形成的列表里的数都是一次赋值呗。

评分

参与人数 1荣誉 +5 收起 理由
fdfanmo + 5 感谢帮忙解答

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-25 19:41:54 | 显示全部楼层
大体上看
前两行分为一组
后两行分为一组
第一组,第二组,你都能理解吧
然后我就不解释了

评分

参与人数 1荣誉 +5 收起 理由
fdfanmo + 5 感谢帮忙解答

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-25 19:43:19 | 显示全部楼层    本楼为最佳答案   
for循环或者成为for迭代是每次从可迭代对象中取值,直至取完。并不受循环体内值的改变的影响。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-25 19:47:46 | 显示全部楼层
循环变量是不能修改的。python for 循环不能修改循环变量的原因是,range()象是一个迭代器,它只会输出信息,而不能修改迭代器的内容。python iterator的C结构是一个指针和一个对象列表。修改循环对象的值是C的思维方式,最好不要用在写python代码上。

评分

参与人数 1贡献 +3 收起 理由
fdfanmo + 3 感谢帮忙解答

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-25 20:05:45 | 显示全部楼层
meto 发表于 2017-4-25 19:47
循环变量是不能修改的。python for 循环不能修改循环变量的原因是,range()象是一个迭代器,它只会输出信息 ...

谢谢meto兄的解释..
其实你说得对..因为习惯了按键精灵的语法(VB)
很多时后就不容易理解python的逻辑了..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-26 16:54:03 | 显示全部楼层
for循环中的i只能从0开始吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-26 17:35:51 | 显示全部楼层
有益 发表于 2017-4-26 16:54
for循环中的i只能从0开始吗?

for的I好像是從range含數中這邊可以指定從幾開始的..
如果沒指定的話就是從0開始.
for i in range(10,20):
    print(i)
這邊的I就是從自己指定的10開始的..
不知道這樣解釋對不對...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表