鱼C论坛

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

[已解决]不懂就要问,关于for循环

[复制链接]
发表于 2017-9-12 13:47:06 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼老师第009 第0 题
  1. for i in range(0,10,2):
  2.     print("I love Python")
复制代码

结果如下:
I love Python
I love Python
I love Python
I love Python
I love Python

range(0,10,2) 里面参数我懂,从0-9 间隔(步长)为2  那么就是 0 2 4 6 8
那么问题来了:
关于这个语句  for i in range(0,10,2)
1.  这里是不是说如果i 在 range(0,10,2) 里面就执行下面的print?

2.  如果第一问是正确的,那这个 i 我没定义 怎么也执行了? 没定义 i 可以是整形 字符串 布尔型 它怎么知道是整形?

3.  i 我并没有赋值,你怎么知道就会在 range(0,10,2) 里面

4. 这个range(0,10,2)我 单独执行怎么是 这样的? 它并不是一个一个数字。
   >>> range(0,10,2)
   range(0, 10, 2)

综上,这个for循环是怎么执行的呢?


最佳答案
2017-9-12 18:14:26
for 循环 是赋值 用的。不是判断用的(如果有这样的例子,告诉我一下)。
这里的for i in range(0, 10 ,2): print('.......')
是把0赋值给了i ,进入循环体,
是把2赋值给了i ,进入循环体,
。。。

你可以用这样试试
  1. for i in range(0,20,3):
  2.     print(i) # 每次进入的时候 i 都是从range()里面得到值
  3.     i += 1
  4.     print(i)
  5.     print("这儿更 i 没关系,只要进入循环体就必打印")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-12 14:41:19 | 显示全部楼层
@ba21
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-12 16:00:28 | 显示全部楼层
1. 这里是说如果(for)i 在(in) range(0,10,2) 里面就执行下面的print里的值
2.i没定义,
  1. print("I love Python")
复制代码
  1. for i in range(0,2,4):
  2.         for i in range(0,1,4):
  3.                 for i in range(0,3,4):
  4.                         print("I love Python")
复制代码

3.第一问就是答案
4.python2.x 中,range返回的是一个列表
   python3.x中,range返回的是一个迭代值
   加个列表函数list,如
  1. list(range(5))
  2. [0, 1, 2, 3, 4]
复制代码

5.如:for语句1,for语句2,for语句3,从1开始到3,循环一次(true才执行),flase则跳过,如for语句1为flase,则执行语句2,语句2为flase,则执行语句3,语句3为flase,则不输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-12 16:02:24 | 显示全部楼层
range不就是给你的i设定了范围么和数字类型么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-12 18:14:26 | 显示全部楼层    本楼为最佳答案   
for 循环 是赋值 用的。不是判断用的(如果有这样的例子,告诉我一下)。
这里的for i in range(0, 10 ,2): print('.......')
是把0赋值给了i ,进入循环体,
是把2赋值给了i ,进入循环体,
。。。

你可以用这样试试
  1. for i in range(0,20,3):
  2.     print(i) # 每次进入的时候 i 都是从range()里面得到值
  3.     i += 1
  4.     print(i)
  5.     print("这儿更 i 没关系,只要进入循环体就必打印")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-12 18:48:32 | 显示全部楼层
本帖最后由 ba21 于 2017-9-12 18:52 编辑

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

使用道具 举报

 楼主| 发表于 2017-9-13 11:38:54 | 显示全部楼层
樱花冷雨 发表于 2017-9-12 16:00
1. 这里是说如果(for)i 在(in) range(0,10,2) 里面就执行下面的print里的值
2.i没定义,

@樱花冷雨 谢谢您的回复,谢谢所有本楼回复,但最佳回复只能给一个。我准备给bush牛,你跟大家说的都很有道理,受益匪浅。但他讲的适合我这种小白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-13 11:39:25 | 显示全部楼层

@ba21 谢谢您的回复,谢谢所有本楼回复,但最佳回复只能给一个。我准备给bush牛,你跟大家说的都很有道理,受益匪浅。但他讲的适合我这种小白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 15:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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