鱼C论坛

 找回密码
 立即注册
查看: 6175|回复: 12

for i in range()和while i<10中的i的区别?

[复制链接]
发表于 2017-1-31 13:32:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 戈壁里的狮子 于 2017-2-1 14:11 编辑

各位:

       小甲鱼老师在“了不起的分支与循环3”中有这样一段代码:

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

最终运行结果是

2
1
4
3
6
5
8
7
。。。。。。。。

但是如果循环体内的 i +=2 起作用的话结果不应该是这样,所以我觉得for i in range()和while i<10中的i是有区别的,哪位帮我解答一下它们的具体区别,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-31 15:41:35 | 显示全部楼层

回帖奖励 +1 鱼币

本帖最后由 Kiopler 于 2017-1-31 15:44 编辑

for i in range(10)是迭代给出0-9这几个数字...

而while只是一个限定.... 小于10的都可以....并不会给出特定数字...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-31 23:46:56 | 显示全部楼层
你可以输出每一步的i自己看一下就明白了 ,可以把他们分开。
  1. >>> for i in range(10):
  2.         print(1, i)
  3.         if i%2 != 0:
  4.                 print(2,i)
  5.                 print('=' * 30)
  6.                 continue
  7.         i += 2
  8.         print(3, i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-1 14:06:10 | 显示全部楼层
whl19910402 发表于 2017-1-31 23:46
你可以输出每一步的i自己看一下就明白了 ,可以把他们分开。

多谢你的代码又帮我深刻了一把!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-1 14:09:07 | 显示全部楼层
统一回复:多谢大家帮助,这个问题我已经理解。基本可以用一句话解释这个问题:for i in range(n)是遍历!而 while i 是条件判断!  for 中的 i 在遍历过程中每次回到for 语句i 都会逐个遍历,不会受函数体中的影响!  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-14 16:56:40 | 显示全部楼层
楼主运行完的代码应该是这样的吧?
2
1
4
3
6
5
8
7
10
9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-14 16:59:31 | 显示全部楼层
我的代码是这样的。
for i in range(10):
    if i%2 !=0:
        print(i)
        continue
    i +=2
print(i)
但是运行的结果是
1
3
5
7
9
9
我知道差在最后的print(i)缩进,但不懂这两种代码区别在哪?感觉都一样啊。你的那个结果我能理解,但我这个结果就不是很懂了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-18 11:08:07 | 显示全部楼层
周黑鸭 发表于 2017-2-14 16:59
我的代码是这样的。
for i in range(10):
    if i%2 !=0:

你这个程序执行的结果应该是:
2
1
4
3
6
5
8
7
10
9
其实你这要记住for  是遍历,不论其下代码块如何,回到for中都会按顺序一个不差的循环下去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-18 12:16:18 | 显示全部楼层
不错,学习了~!~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-20 15:53:58 | 显示全部楼层
haojie99 发表于 2017-2-18 12:16
不错,学习了~!~!

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

使用道具 举报

发表于 2017-9-24 10:33:24 | 显示全部楼层
戈壁里的狮子 发表于 2017-2-18 11:08
你这个程序执行的结果应该是:
2
1

我也看懂了 谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-26 10:45:11 | 显示全部楼层
不错的例子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-21 19:31:18 | 显示全部楼层
终于看懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 19:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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