堂小白 发表于 2019-3-15 11:58:41

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

刚开始学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语句
提前规定了什么么?

刚开始学习的小萌新,希望大佬们能解答!谢谢!

jackz007 发表于 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,这个不受任何人为干扰。
                i+=2      # 只能影响到后面的 print() 的结果,不影响循环
                print(i)      

ba21 发表于 2019-3-15 12:15:13

循环
遍历循环
2个不同的概念
遍历循环
for i in :i 从 每次取1位数,继续后面的操作。
第1次取1,第2次就是取3, 第3次就是取5 ......

BngThea 发表于 2019-3-15 12:30:02

是的,循环中对循环变量的修改不影响下一次循环判断是该变量的值

wwhywhy 发表于 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部分直到结束

不知道是否解释清楚了?

堂小白 发表于 2019-3-15 17:12:21

ba21 发表于 2019-3-15 12:15
循环
遍历循环
2个不同的概念


你好,i 的情况我懂了,谢谢你!另外,刚百度了循环和遍历的区别。循环就是满足条件进行重复;遍历是按一定规则访问树形结构中每一个节点,每节点访问一次;还有一种叫迭代,按某种顺序逐个访问列表中某一项。那么想问下这里的for是哪一种呢?

ba21 发表于 2019-3-15 17:50:28

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

你就看做迭代吧。

堂小白 发表于 2019-3-16 15:46:27

ba21 发表于 2019-3-15 17:50
你就看做迭代吧。

好的,谢谢
页: [1]
查看完整版本: 为啥Python中for循环中的目标也是变量,却不用提前赋值