笨方法学python 习题41(外星人游戏)

本文探讨了在编程中如何使用字典存储数据,并通过函数实现动态查询功能。此外,还介绍了有限状态机的基本概念及其在计算问题中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

习题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)到另一种状态。

计算问题就是状态的表示和迁移。计算机五大部件是几乎所有的计算载体。

存储器保存了状态,输入设备是不确定的状态,输入输出设备在运算中和存储器没什么本质的区别。

运算器实现了状态的变化,控制器驱动状态的变化和寻址

有限状态机 简书目前只能理解一些很浅显的部分







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值