已有183人关注
这两串代码中 i+=1 一个在else的下面,另一个total-=1和else平齐,在实际运行中没有啥差别,为啥书中的实例代码total-=1和else平齐。可以放在else下面吗?两者有啥区别?
发表在Python图书答疑 2019-03-07 悬赏:3 学分 《Python从入门到项目实践》第9章 循环结构语句
是否精华
版块置顶:
total = 99                         # 记录拍腿次数的变量
for number in range(1,100):      # 创建一个从1到100(不包括)的循环
    if number % 7 ==0:            # 判断是否为7的位数
        continue                   # 继续下一次循环
    else:
        string = str(number)      # 将数值转换为字符串
        if string.endswith('7'):  # 判断是否以数字7结尾
            continue                # 继续下一次循环
    total -= 1                      # 可拍腿次数-1
print("从1数到99共拍腿",total,"次。")  # 显示拍腿次数


total = 99                         # 记录拍腿次数的变量
for number in range(1,100):      # 创建一个从1到100(不包括)的循环
    if number % 7 ==0:            # 判断是否为7的位数
        continue                   # 继续下一次循环
    else:
        string = str(number)      # 将数值转换为字符串
        if string.endswith('7'):  # 判断是否以数字7结尾
            continue                # 继续下一次循环
            total -= 1                      # 可拍腿次数-1
print("从1数到99共拍腿",total,"次。")  # 显示拍腿次数


分享到:
精彩评论 9
夏末丶渲染初阳
学分:61 LV3
2019-03-08
沙发
第二段代码下边如果if条件成立,跳出当前循环直接执行下一次循环,后边的代码全部都不会执行。第一段代码if条件成立会运行到total-=1再回去执行循环。你打断点对比一下两段代码运行时变量的变化就能看到了。
夏末丶渲染初阳
学分:61 LV3
2019-03-08
板凳
这两段代码的结果你确定是一样的吗?第二段代码%7==0的话这个数是不计次数的啊。
夏末丶渲染初阳
学分:61 LV3
2019-03-08
地板
话说,,你代码贴错了吧,i+=0在那儿?,,,,完全不懂你这是要计什么的,,,
chssong
学分:227 LV4
2019-03-09
4L

不能要把total-=1放在else 中,因为if判断不管结果是真还是假,最终都是要total-=1。

如果非要放在放在else 中,那么必须放在continue 前面,即 total-=1  continue。

因为程序运行碰到continue时候就会返回从 for循环开始 执行。要是放在continue后面,永远不会执行total -=1.

无语_mrkj
学分:3155 LV11
2019-03-12
5L

如果把

total -= 1

放到else里的continue下面这行代码就不会被执行了。


zb007269
学分:1073 LV8
2019-03-13
6L

无语_mrkj 发表于2019-03-12 16:52

如果把

total -= 1

放到else里的continue下面这行代码就不会被执行了。


谢谢老师

zb007269
学分:1073 LV8
2019-03-13
7L

夏末丶渲染初阳 发表于2019-03-08 09:15

话说,,你代码贴错了吧,i+=0在那儿?,,,,完全不懂你这是要计什么的,,,

嗯,谢谢

zb007269
学分:1073 LV8
2019-03-13
8L

chssong 发表于2019-03-09 11:52

不能要把total-=1放在else 中,因为if判断不管结果是真还是假,最终都是要total-=1。

如果非要放在放在else 中,那么必须放在continue 前面,即 total-=1  continue。

因为程序运行碰到continue时候就会返回从 for循环开始 执行。要是放在continue后面,永远不会执行total -=1.

嗯,谢谢指教

无语_mrkj
学分:3155 LV11
2019-03-13
9L

,不用客气

首页上一页 1 下一页尾页 9 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照