计算机仿真之本章小结,,


  试一试,再试一试。

  这个程序中还要使用一个新内容,这称为try-except块。

  如果程序要做一件事情,而且这个事情有可能导致错误,那么最好提供一种办法来收集错误消息并进行处理。而不是让程序直接停止。这可以利用try-except块来做到。

  例如,如果想打开一个文件,但是这个文件并不存在,你就会得到一条错误消息,如果你没有处理这个错误,程序会在这里停止,不过,也许你想让用户重新输入文件名(没准敲错了)。利用try-except块,你可以获取到错误信息并继续执行。

  对于打开文件的例子,try-except块,你可以获取到错误信息并继续执行。

  对于打开文件的例子,try-except块如下所示:

  与孩子一起学编程-python教程

  你想尝试的部分(可能导致一个错误)要放在try块中,在这个例子中就是尝试打开一个文件,如果可以打开文件而不会导致错误,就会路过except部分。

  如果try块中的代码确实导致一个错误,就会运行except块中的代码。Except块中的代码告诉程序一旦出现错误该做些什么,你可以这样来考虑:

  Try:做这件事(不做其他事情……)

  Except:如果有错误,就做这件事

  try-except语句是Python处理错误所采用的方法,这通常称为错误处理(error handling)。错误处理允许你编写可能出错的代码(甚至是很严重的错误,倘若没有错误处理,这些错误在正常情况下甚至会让你的程序停止),使程序仍能继续运行。我们不打算在这本书里更详细地讨论错误处理,不过我希望你能了解一些基础知识,因为在电子宠物代码中就会看到错误处理。

  下面来看这个代码,见代码清单24-4,这里的说明已经对大部分工作做了解释。这个代码有点长,试着运行这个程序,然后再看代码,确保你能理解它是如何工作的。

  与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程

  Sleep_test()函数使用了一个PythonCard对话框,不过稍做了调整,你可能记得PythonCard要基于另一个名为wxPython的Python模块。正是因为这个原因,安装PythonCard时要安装wxPython。有时可以使用特殊的wxPython参数来改变PythonCard的行为,在这里,我们改变了标准PythonCard消息框,如下图所示。

  与孩子一起学编程-python教程

  我们把它变成一个有感叹号的对话框,还有Yes和No按钮,就像下图这样。

  与孩子一起学编程-python教程

  即使你不能完全读懂这个代码也不用担心,如果你希望学习更多有关PythonCard和wxPython的内容,可以先看看PythonCard网站:http://pythoncard.sourceforge.net/。

  在本章中,我们只是稍稍了解了计算机仿真的一点皮志,知道了模拟真实世界中一些方面的基本思想,比如重力和时间,实际上,计算机仿真在科学、工程、医药和很多其他领域都得到了广泛使用。其中很多仿真非常复杂,即使用最快的超级计算机运行也需要花费几天甚至几个星期。不过钥匙链上的小电子宠物也是一种仿真,有时最简单的仿真也是最有意思的。

  你学到了什么

  在这一章,你学到了以下内容。

  什么是计算机仿真,为什么使用计算机仿真

  如果模拟重力,加速度和作用力。

  如何跟踪和模拟时间。

  如何使用pickle将时间戳保存到文件。

  关于错误处理的一点知识(try-except)

  如何使用定时器生成周期性的事件。

  测试题

  列出使用计算机仿真的3个原因

  列出你见过或知道的3种计算机仿真

  使用哪种对象来存储两个日期或时间之差?

  动手试一试

  为Lunar Lander程序增加一个“脱离轨道”测试。如果飞船飞出了窗口顶边,而且速度超过+100m/s,就停止程序,并显示一条消息,比如“You have escaped the moon,s gravity .No landing today!”(你已经脱离月球重力,无法着陆!)

  为Lunar Lander用户增加一个选项,可以在飞船着陆后继续玩这个游戏,而不必重启程序。

  为电子宠物 GUI 增加一个Pause按钮,这会让宠物的时间停止,不论程序是否在运行。(提示:这说明可能需要在pickle文件中保存“暂停”状态。)

评论关闭