鱼C论坛

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

[已解决]为啥Python中for循环中的目标也是变量,却不用提前赋值

[复制链接]
发表于 2019-3-15 11:58:41 | 显示全部楼层 |阅读模式

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

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

x
刚开始学Python,学到for循环时,for的语法是:for 目标(变量)in 表达式(列表)。它可以遍历列表中每个字符。因为之前不是说变量一定要先赋值才能使用么?这里却没有提前赋值。
而且后面举了一个例子:
        for i in range (10):
                if i%2 != 0:
                        print(i)
                        continue
                i+=2
                print(i)
其运行答案是2 1 4 3 6 5 8 7 10 9
这个答案说明 i 就是按顺序从0-1-2...这种一个一个循环判断的,可是 i 不是经过了 i +=2么,那么从0开始的循环再次循环时,i 不应该从2 开始?那答案应该是2、4、6、8这种。是for语句
提前规定了什么么?

刚开始学习的小萌新,希望大佬们能解答!谢谢!
最佳答案
2019-3-15 12:15:13
循环
遍历循环
2个不同的概念
遍历循环
for i in [1,3,5,7,9]:  i 从 [1,3,5,7,9]每次取1位数,继续后面的操作。
第1次取1,第2次就是取3, 第3次就是取5 ......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-15 12:06:39 | 显示全部楼层
本帖最后由 jackz007 于 2019-3-15 13:31 编辑

    i 是循环变量,其值只能由 for 来决定,也就是说,i 是由 for 来赋值的,这个值不论是否在循环中人为改变,从 for 出来的 i 值始终是 0 , 1 , 2 , 3 , 4 ,5 , 6 ,7  , 8 , 9,这个不受任何人为干扰。
  1.                 i+=2        # 只能影响到后面的 print() 的结果,不影响循环
  2.                 print(i)      
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 12:15:13 | 显示全部楼层    本楼为最佳答案   
循环
遍历循环
2个不同的概念
遍历循环
for i in [1,3,5,7,9]:  i 从 [1,3,5,7,9]每次取1位数,继续后面的操作。
第1次取1,第2次就是取3, 第3次就是取5 ......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-3-15 12:30:02 | 显示全部楼层
是的,循环中对循环变量的修改不影响下一次循环判断是该变量的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 12:48:13 | 显示全部楼层
本帖最后由 wwhywhy 于 2019-3-15 12:50 编辑

for i in range (10):
        if i%2 != 0:
                print(i)
                continue

        i+=2
        print(i)

说明:
1. for i in range (10): 变量(i)的值依次为:0,1,2,3,4,5,6,7,8,9这10个值。
2. 执行绿色的部分:如果(i)被2除余数不为0 则输出变量i的值并直接跳过后边的语句
3. 如果i被2整除,则执行红色部分 i+=2 并将加2后的结果输出
4. 继续执行第一句:for i in range (10)  变量(i)的值被继续赋值。然后执行2-4部分直到结束

不知道是否解释清楚了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-15 17:12:21 | 显示全部楼层
ba21 发表于 2019-3-15 12:15
循环
遍历循环
2个不同的概念

你好,i 的情况我懂了,谢谢你!另外,刚百度了循环和遍历的区别。循环就是满足条件进行重复;遍历是按一定规则访问树形结构中每一个节点,每节点访问一次;还有一种叫迭代,按某种顺序逐个访问列表中某一项。那么想问下这里的for是哪一种呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 17:50:28 | 显示全部楼层
堂小白 发表于 2019-3-15 17:12
你好,i 的情况我懂了,谢谢你!另外,刚百度了循环和遍历的区别。循环就是满足条件进行重复;遍历是按一 ...

你就看做迭代吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-16 15:46:27 | 显示全部楼层
ba21 发表于 2019-3-15 17:50
你就看做迭代吧。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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