打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第11关课后习题讲解

大家有没有在学习呢?卡西准备来讲一下11关的课后习题啦!

今天的爬楼口令是:【第十一关习题讲解】

先来看11关的必做练习,由3个小练习组成

第1个,当我们执行这个错误代码的时候会报错,报错的意思是:

UnboundLocalError:赋值前引用的局部变量’sum_score’

问题在于,当我们在函数内给sum_score这个变量赋值的时候,因为全局也存在一个同名变量,所以程序分不清这里应该是全局变量,还是局部变量

那么,为了函数内可以正常使用变量,我们可以有两种处理方式

一种是把sum_score放在函数里面定义

一种是在函数内部,用global进行声明

第2个,当我们执行这个错误代码的时候不会报错,但是会陷入死循环

问题出在于这一句:if x == '小狗’ and x =='汪汪’:

这一句的意思是,当x既等于 小狗 ,也等于 汪汪 的时候,才满足if的条件

那我们思考一下,x是赋值了一次,是不是不可能存在同时存在两个值的情况

或者从生活上的逻辑想一下,当我们喊 小狗  或者 汪汪的时候,才满足条件

所以,这里只要把条件的逻辑连接符改为or,就可以了

第3个,被动掉坑的情况。当我们运行代码的时候,会报错ZeroDivisionError: division by zero

意思是除数为0

为了避免除数为0的报错,我们有两种debug方式

一种是利用今天学到的 try…except语句

相信大部分同学都想到这个了,但是有些同学可能会出现一个问题

把for循环放在try语句的里面,这样就会出现,当执行到except语句的时候,程序不会继续往下走了

这是因为,当程序执行到except的时候,被动跳出了循环。所以循环未完成的部分也就执行不到了

第二种解法是课堂的答案

这里用 if deposit[i-1] == 0:   来判断除数是否为0

比如说当 i 为6的时候,deposit[i-1]就是deposit[5],也就是0。此时不进行运算

而其他情况则执行else语句,进行运算和打印

也讲一下进阶练习吧,进阶练习其实存在多种报错可能的情况

当我们有多种报错的时候:

1)可以写多个except语句

2)写一个except语句,包含多个报错信息

3)用一个拢总的报错概括

这个进阶练习不难,但是同学们也需要自己动手写写看才可以哦

好啦,我讲完了。大家继续学习吧

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
控制流在R语言里只是一种辅助工具:循环
第4、5、6关课后习题讲解
第11关 知识点 常见问题集锦
JavaScript教程函数进阶
如何正确理解PHP的错误信息
python的基本语法和脚本格式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服