状态机是由两种或多种状态组成的,每一个状态有着对应的功能。状态机使用会让我们的代码简洁,逻辑清晰,条件判断难以实现的问题我们就可以实现,例如我们像完成这样的效果。

我们通过每次画不同的字符串来做出这样的效果,但是如果我们使用条件判断,判断空格数会发现我们代码的逻辑很难。这种情况就可以使用状态机,接下来请大家结合实例,阅读代码注释,进一步理解。

import timeclass Draw:def __init__(self, num=5):''':param num: 圆点个数:variable flag: 状态机, indents: 原点前面的空格。'''self.num = numself.indents = numself.flag = True# 创建绘制函数def draw(self):symbols_list = []for i in range(self.num):symbols_list.append('•')_indents = self.numwhile True:# 空白符列表indents_list = []for j in range(self.indents):indents_list.append(' ')if self.indents == 0:  # 当前面的空格到0,切换加的模式self.flag = Falseif self.indents == self.num:  # 到了跟圆点一样,就切换减的模式self.flag = Trueself._decide()# 把两个列表连起来new_list = indents_list + symbols_list# 连接成字符串,等待并输出print(''.join(new_list))time.sleep(0.5)def _decide(self):# 状态机if not self.flag:self.indents += 1elif self.flag:self.indents -= 1paint = Draw()
paint.draw()

Python什么是状态机,状态机的简单应用相关推荐

  1. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  2. 基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单

    一.思考❓❔ 1.什么是性能自动化测试? 性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数, ...

  3. python代码大全表解释-Python中顺序表的实现简单代码分享

    顺序表python版的实现(部分功能未实现) 结果展示: 代码示例: #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object ...

  4. python和c-Python与C的简单比较(Python3.0)

    Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...

  5. 怎么自学python自动化测试-Python实现性能自动化测试竟然如此简单

    一.思考❓❔ 1.什么是性能自动化测试? 性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数, ...

  6. python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码

    在做工程闲暇时间,将做工程过程比较重要的一些内容备份一下,如下内容段是关于演示python如何创建和使用一个简单的元类的内容,应该能对小伙伴们也有用途. #!/usr/bin/env python # ...

  7. python条件语句-Python中条件判断语句的简单使用方法

    最简单的条件语句: if expression: expr_true_suite 如上,if是关键字,expression是条件表达式,条件表达式支持多重条件判断,可以用布尔操作符and.or和not ...

  8. python字符计数怎样去除空格_去除python中的字符串空格的简单方法

    python编程中,我们在修改代码,遇到空格很多的情况下,我们要删除空格.本文小编整理了三种字符串去除空格的方法: 方法一:使用字符串函数replace,去除全部空格. 实例: >>> ...

  9. python的代码有哪些_简单python代码类型有哪些?

    简单python代码类型有哪些? 简单python代码类型有: 1.[背景] 最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡. 海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏 ...

  10. python的objectproperty,python中property(lambda self: object())简单解释,,最后4行lambda

    python中property(lambda self: object())简单解释,,最后4行lambda 最后4行lambda.问题是:如何运作?它们的含义和结果是什么?您能否以简单的方式显示该声 ...

最新文章

  1. 微信小程序开发之不能使用eval函数的问题
  2. c# 通过字体对话框获取字体名称和字体大小_【插件】PS、AI、ID都能用的字体管理插件...
  3. Nginx内存池实现的了解
  4. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...
  5. mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)
  6. java.lang.OutOfMemoryError: Java heap space解决方法
  7. CentOS搭建C++开发环境
  8. 如何创建sequence
  9. 不得不服!腾讯优图联合腾讯会议正式上线神奇的眼神接触功能
  10. tensorflow中的tf.get_variable
  11. TD式创新:中国标准横空出世 回归主流的TDD LTE
  12. 各种工具配置忽略证书
  13. 【雅思大作文考官范文】——第七篇: 'dress code' essay
  14. 华为机试-字符串子序列II
  15. C++ Windows——计算耗时(获取高精度毫秒计时)
  16. mysql 查看time zone_MySQL查看和修改时区time_zone
  17. 【PyCharm实用教程】最详细的Pycharm使用教程,你真不要进来学习一下?
  18. 羽毛球双打比赛中两位运动员谁来发球以及如何换位?
  19. 切换 root 时 cannot execute ljy : NO such file or directory
  20. 佳能c3020维修模式 白电平调整_传真机维修清零 白电平大全

热门文章

  1. 博士学位真的那么重要吗?上交大博士亲述科研心路,获4万高赞~
  2. 个人站——联系我页面设计
  3. 电脑网络正常,浏览器打不开的解决方案(三种情况)
  4. 防坑指南: 杨工告诉你免联考国际硕士到底是个什么梗?
  5. adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
  6. 厦门感恩回馈一线职工 为其开启“新年旅程”
  7. 使用设备树给DM9000网卡_触摸屏指定中断
  8. 自定义ImageView实现切图的无缝对接
  9. D18-D22 ES6
  10. 黑白图片怎样上色?教你如何给黑白照片上色