第十关
知识点复习
学习用时:30min
随堂测验+上机作业:30min
随堂作业正确率:8/10
1.嵌套条件
嵌套条件的重点在于,只有当外层条件成立时,才有可能进入到内层条件当中继续执行。执行过程大概如下:
嵌套条件在写代码的过程中大概分为以下四步:
- 确定外层条件
- 对外层条件使用条件语句建立分支结构
- 确定内层条件,建立分支结构
- 将内层条件及分支结构写进外层条件对应的分支里
关于if ……else 循环与 if…elif…else多路分支的区别: 多路分支节约资源,多路分支适合用来解决“多选一”的问题
如果计算机只需要做 一次多选一问题,就可以用 if … elif … else 语句将各个选项整合到一个多路分支中,在这个过程中,我们需要让计算机先检查最难满足的条件,这样才能保证程序运行与我们的预期相符,并且提高代码效率
#充 1000 返 300 ,充 500 返 100 ,充 100 返 20 ,但是第一段代码并不是检查最难满足的条件。所以输出充1000返20
recharge = 1000
if recharge >= 100:
rebate = 20
elif recharge >= 500:
rebate = 100
elif recharge >= 1000:
rebate = 300
print(rebate)
#改后如下-------------------------------------------------
recharge = 1000
if recharge >= 1000:
rebate = 300
elif recharge >= 500:
rebate = 100
elif recharge >= 100:
rebate = 20
print(rebate)
2.常见错误
- 忘记条件后或 else 后的冒号: SyntaxError报错line 行数
- 代码缩进错误 IndentationError
- 嵌套中缩进错误 SyntaxError: invalid syntax
- 搞混=赋值 与==判断
- 搞不清 bool(’’) -->0(代表无内容 False)和 bool(’ ') --1(代表有内容 True)
3.练习
- 年龄在 30 岁(含)以下,50 米跑成绩 ≤ 11 秒,且 1000 米跑成绩 ≤ 4 分钟,最终成绩为达标,否则为不达标
- 年龄在 31 岁(含)以上,50 米跑成绩 ≤ 11.5 秒,且 1000 米跑成绩 ≤ 4.5 分钟,最终成绩为达标,否则为不达标
def check_test(age, run_50, run_1000):
if age >= 31:
if run_50 <=11.5 and run_1000<=4.5:
print("达标")
else:
print("不达标")
else:
if run_50 <=11 and run_1000<=4:
print("达标")
else:
print("不达标")
check_test(22, 10, 4)
- 月用电量在 50 度以内部分(包含 50 度),单价按 0.48 元/度计算
- 月用电量在 50 度到 200 度部分(包含 200 度),单价按 0.51 元/度计算
- 月用电量在 200 度以上部分,单价按 0.68 元/度计算
#这次是忘记了return ::>_<::
def calc_price(power):
if power<50:
price = power*0.48
elif 50<power<200:
price = 50*0.48+ (power-50)*0.51
else:
price = 50*0.48+ 150*0.51 + (power-200)*0.68
return price
print(calc_price(155))