Skip to content

Latest commit

 

History

History
170 lines (118 loc) · 3.79 KB

File metadata and controls

170 lines (118 loc) · 3.79 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0176
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

循环细节

回忆

  • 这次了解了 break

  • break 可以打破循环

    • 跳出三界外
    • 不在五行中
  • 现在的问题是

    • 遇洪而开
    • 见信而寂
  • 无法输出任何字符

  • 怎么办?🤔

  • 继续往后走了

  • 那什么时候用 break 呢?

  • 我看好像跳出条件放在 while 的循环条件里面也可以啊?!

跳出用法

图片描述

  • 比如说比赛总共十圈
  • 你现在第三圈
  • 正常的循环十次
  • 但是遇到黑白旗
  • 后面的都不用跑了
  • 跳出循环
  • break 的手法非常爆裂

退出游戏

图片描述

  • 不是另开一局
  • 而是直接退出
  • 这就是 break 的火爆效果
  • 我们也可以用 break 控制是否退出游戏
  • 我们来玩一个猜数字的游戏

猜数字

图片描述

  • 每次猜一个数字
    • 猜中了就告诉你猜中了
    • 猜不中就告诉你大了
    • 还是小了

图片描述

  • 这个游戏怎么写呢?

循环走起

图片描述

图片描述

  • 但是用户是无知的
  • 有可能出现这种错误

错误

图片描述

  • 用户直接回车
  • 或者输入"abc"
  • 都会报错
  • 怎么避免这类问题呢?

防御式编程

图片描述

图片描述

  • 如果我要把输入的数字范围限制在 0-100 之间呢?

继续防御

图片描述

  • 这个游戏就比较完善了
  • 运行一下试试

运行结果

图片描述

  • 能想到的问题都处理了
  • 应该没有什么问题了吧?!
  • 还有什么游戏可以玩呢?
  • 以前做过猜丁壳啊?

猜丁壳

  • 000715 曾经做过猜丁壳的比较判断
  • 不过这是一局的判断
  • 我们可以做成一个循环赛
    • 比如说 bo7
      • 七局四胜
    • 或者无限循环赛
    • 双方分别积分
  • 出手由来
    • 电脑随机
    • 个人按照输入的内容出手
    • 如果输入 q 就退出整个比赛

图片描述

  • 这个小游戏你能做么?

回忆

图片描述

  • 我们输出0-127等数字对应的chr的时候
  • 0好像被黑暗森林所吞没

对应输出

  • 如果用序号:字符的方式

图片描述

  • 可以找到0这个字符

  • 问题出在哪里呢?

  • esc的时候

    • 他从正常输出序列逃逸了
    • 一直到1的时候才回来
  • 那我要跳过27号字符

ESC

图片描述

  • 输出结果

图片描述

  • 0和前面的符号并没有被黑暗森林所吞没
  • 而是跟着esc键逃逸了😁

总结

  • 这次做了猜数字
    • 猜中了就 break 出来
    • 没猜中就继续猜
  • 然后复习了防御式编程
    • 对于各种错误有自己的预估和处理
  • 最后可以自制猜丁壳小游戏
  • 还可以做什么游戏呢?🤔
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。