习题41
对上节程序理解的补充:
//之前我是这样想的:
建立一个cities字典,原有三个含有对应物件的元素,又增加两个\定义一个寻找城市函数\\
在cities字典里新建一个元素,索引为_find,元素值为执行寻找城市函数的返回值,现在这个函数还没有参数\\
True开始了一个无限循环直到输入内容为空时终止程序。循环内容是调用寻找城市函数,\\
如果输入内容state在cities这个字典中,将state索引到的cities元素返回至新增的_find索引元素\\
cities[_find]这个元素赋给另一变量city_found并且打印出来。这两行内容为一次循环。
//
函数也可以作为变量cities['_find']=find_city。我们把函数find_city放到了标记为'_find'的cities字典中
city_found这个变量通过索引'_find'元素来调用find_city函数,states和cities为参数
嗯。。。其实差不多
阅读方法:
从前向后
倒着阅读更清晰
从里向外阅读,不太理解逆时针的意思
写下了这段很多字的代码
------------------------------------------
新知识点:随机获取一个数字randint(范围)
对最后几行有些不理解。next=room()这行为什么加括号。
有人解释是 :room=map[next]此值当前为函数,但因为未加括号和参数所以未调用。
返回至下一个房间的工作原理
定义的这些地点线最后的返回值是death()或者地点字符串,因为true循环不停止,
room()执行后返回的字符串再次赋值next,从而room值换成了下一个地点,达到了进入下一个房间的目的。
创建更多房间。把原本直接死的地方增加一点支线就扩大了。
文档字符串:函数体的第一行,用一对三引号定义。第二行是空行。使程序更易理解,让用户交互的浏览代码
print(文档相对的函数名.__doc__)
有点没看懂第三和第四个问题的差别
有限状态机(finite-state-machine):
有限个状态以及在这些状态之间的转移和动作的数学模型
三个特征:
- 状态总数(state)是有限的。
- 任一时刻,只处在一种状态之中。
- 某种条件下,会从一种状态转变(transition)到另一种状态。
计算问题就是状态的表示和迁移。计算机五大部件是几乎所有的计算载体。
存储器保存了状态,输入设备是不确定的状态,输入输出设备在运算中和存储器没什么本质的区别。
运算器实现了状态的变化,控制器驱动状态的变化和寻址
有限状态机 简书目前只能理解一些很浅显的部分