鱼C论坛

 找回密码
 立即注册
查看: 2379|回复: 9

关于range

[复制链接]
发表于 2020-4-4 18:15:16 | 显示全部楼层 |阅读模式

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

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

x
  1. for i in range(10):
  2.     if i % 2 != 0:
  3.         print(i)
  4.         continue
  5.     i += 2
  6.     print(i)
复制代码


看不懂最后结果,能给解释下吗,谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 18:21:40 | 显示全部楼层
for i in range(10):   对于1到10中数循环取为i
    if i % 2 != 0:  如果 i%2 不为零
        print(i)    打印,
        continue  继续循环
    i += 2  当前i递增2
    print(i)  打印i,然后回到第一步从下一个i开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:24:31 | 显示全部楼层
for i in range(10):  # 把0-9的值依次赋值给i
    if i % 2 != 0:    # 如果i除以二的余数不为0(是奇数)
        print(i)             #打印i
        continue           #继续循环(不执行contiue以后的代码)
    i += 2             #如果i是偶数给i+2(不影响下一次循环时 i 的值)
    print(i)            #打印i

就是依次计算0-9内的数,
如果是奇数,直接打印出来
如果是偶数,加二在打印
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:25:33 | 显示全部楼层
for i in range(10):#这一行是for循环,i从0每次自增1到9
i=0,判断if条件,0对2求余结果为0,条件为假,执行与if并列的语句i=i+2,打印2
i自增1,i=1,判断if条件,结果为真,执行if后面的语句,打印1,并通过continue跳出此次循环
i又自增1,i=2.判断if条件,结果为假,执行与if缩进一致的并列语句,故打印4
依此类推。。。。。
主要注意缩进关系,求余条件的判断和continue的跳出本次循环不执行后面的重开一次循环

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:34:26 | 显示全部楼层
if i % 2 != 0  等于 什么数字除2后余数不等于0?  

能除2余数为零的肯定是偶数,所以只有奇数满足除2余数不为零。

假如是奇数的话,就继续(continue)下次循环,本次什么都不做。

所以不满足if的肯定是奇数,奇数往上2个2个加,加的也都是奇数。

最后把奇数打印出来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:35:01 | 显示全部楼层
三楼解释的非常对,
我补充一点点
for range循环,在开始的时候,就会生成迭代遍历序列,
在循环执行过程中,修改i的值不影响迭代遍历序列。
range()有三个参数,以逗号隔开,第一个参数和第三个参数都有默认值,第一个参数是起始位置默认值为0,第三个参数是步长默认值为1。range(m,n,l)就是从m到n(不包含n)步长为l的序列
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 20:00:38 | 显示全部楼层
  1. for i in range(10):
  2.     if i % 2 != 0:    # 如果 i 是奇数(除以 2 的余数不为 0)
  3.         print(i)      # 打印 i 的值
  4.         continue      # 继续循环
  5.     i += 2            # 将 i 加 2(此处并不影响 for 循环中的 i 的值,因为 for 循环会自动重置 i)
  6.     print(i)          # 把 i 加 2 后的结果打印出来
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 20:10:07 | 显示全部楼层
本帖最后由 雨留下的印记 于 2020-4-4 20:11 编辑

for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)
i从0~9
i = 0时,0%2 = 0,不会进入if语句,直接进入 i += 2 ,输出的结果是2
然后 i=1  1%2  != 0,进入if语句,输出结果1
以此类推 i=2    输出结果4
i = 3 输出结果3
这个函数就是把0~9的奇数直接输出,偶数+2输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 09:50:04 | 显示全部楼层
从0-9依次判断余数是否为零
不为零就打印,然后继续循环
其他的就加2,再打印
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 19:00:07 | 显示全部楼层
谢谢大家,我懂啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 18:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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