python 状态机教程_一个非常简陋的python状态机
最近琢磨撸个小家电(雾),要用到状态机,比如开了之后调节温度,定时,启动,暂停啥的,每个状态能跳到特定的几个状态里面去。
然后看了别人写的python状态机,啊那个接口写的我实在看不懂,自己上手抄吧,又感觉python写接口怪怪的,味道不太对。然后上网查了发现python的设计模式好像跟c++和java不一样,于是就有了这个蠢代码……
代码不多,三十行,非常简陋,也没有纠错机制。就这我还标错了个东西,琢磨半天yield generator啥的,结果发现根本不是那回事。关键点在于:直接返回下一状态的函数名就好啦~
0状态在输入奇数的时候变成1状态,输入偶数不变;1状态在输入奇数的时候变成0状态,输入偶数也是不变。
in_list = [1, 1, 1, 1, 0, 0, 2, 0, 3, 5, 3]
def state0(input0):
print("状态0")
print("input0=" + str(input0))
if input0 % 2 == 0:
return state0
else:
return state1
def state1(input1):
print("状态1")
print("input1=" + str(input1))
if input1 % 2 == 0:
return state1
else:
return state0
if __name__ == '__main__':
i = state0
num = 1
for t in in_list:
print('--------\n循环轮次:' + str(num))
i = i(t)
num += 1
python 状态机教程_一个非常简陋的python状态机相关推荐
- mu编程软件python使用方法_一个面向初学者的Python编辑器Mu
原标题:一个面向初学者的Python编辑器Mu Mu一个开源编辑器,是满足学生可以轻松学习编写Python代码的工具.作为初学程序员的Python编辑器,旨在使学习体验更加愉快.它使学生能够在早期体验 ...
- python 爬虫 教程_一个入门级python爬虫教程详解
前言 本文目的:根据本人的习惯与理解,用最简洁的表述,介绍爬虫的定义.组成部分.爬取流程,并讲解示例代码. 基础 爬虫的定义:定向抓取互联网内容(大部分为网页).并进行自动化数据处理的程序.主要用于对 ...
- spark python入门教程_你是如何自学 Python 的?
我是机械类专业出身,现在在一家NGO组织从事数据分析方面的工作,主要的工具是Python.SQL.Spark.平时会写一些分析用的脚本,偶尔会写写爬虫,跑跑算法,应该说Python算是我吃饭的家伙,很 ...
- python儿童画教程_儿童节教你用 Python 画出童年回忆
作者 | 张同学 来源 | 凹凸数据 大家好,我是张同学. 又到一年一度的国际儿童节,作为逢节必过的程序猿,怎么可以放过这个学习技能的机会呢? 于是,今天我们来学习 Python 的 Turtle 库 ...
- python deque函数_一个不得不了解的Python库——collections
基本介绍 Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型,如下.这些 ...
- python bokeh教程_交互式数据可视化在Python中用Bokeh实现
Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库.这是Bokeh与其它可视化库最核心的区别.正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程. 正如你 ...
- python tk教程_【转】【Python】Tkinter教程
什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...
- python热身教程_我回来拉,Python热身篇:)
用法很简单,把apihelper.py的路径添加到Python搜索路径内,然后将对象当作参数传给info函数即可.如: >>> li = ['aa','bb'] >>&g ...
- python爬虫设计在哪里_《python 爬虫教程 知乎》 怎样用Python设计一个爬虫模拟登陆知乎...
<python 爬虫教程 知乎> 怎样用Python设计一个爬虫模拟登陆知乎 python 爬虫教程 知乎2020-09-23 01:45:13人已围观 怎样用Python设计一个爬虫模拟 ...
最新文章
- Cocos2d—android 中常用的工具类
- wxWidgets:wxAnimationCtrl类用法
- 极光尔沃切片软件_极光尔沃3D打印机走进肥东中小学校
- IDEA 启动时,报“淇℃伅”的字符
- SpringBoot Environment读取配置文件乱码
- C++ malloc头文件
- 百亿级微信红包的高并发资金交易系统设计方案
- CHD+CM-1 安装
- ES实现自动补全查询
- html5快速制作,html5动画制作(教你如何快速绘制HTML5动画)
- 测试大会能给我们带来什么?
- 接口测试 Pytest断言处理_告警断言
- 美团一面-20200328-1h
- 云原生时代一站式DevOps平台--阿里云效
- DP(动态规划)入门(一)
- java获取一天的起止时间
- Shell脚本编程实战
- 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
- 旷视 CEO 印奇:靠“刷脸”折腾出 120 亿的大生意
- 渗漏(Percolation)问题(java语言实现)
热门文章
- POJ 2886:Who Gets the Most Candies?
- ABAQUS切削模拟
- 网页设计各种颜色搭配 并且哪几种颜色可以做成哪种风格
- FlyFish 2.0已发布,大屏开发应用更加灵活便捷
- 2023年最有前景的行业
- js滑动操作之-pageYOffset,scrollTop,offsetHeight,scrollHeight
- 整理:收集增强WiFi信号的10种方法
- linux桌面无法启动,Ubuntu18.04启动后无法进入桌面修复方法(图文)
- 把求伯君干掉,向比尔·盖茨进军!
- 7-18 nii.gz文件的处理