Python:while循环中的函数

时间:2015-04-26 01:13:13

标签: python function loops

有人告诉我,当你想多次执行同一段代码时,函数非常有用......但是当处理while循环时,函数是必需的。我不确定是否要在while循环中调用函数来进行基于文本的冒险游戏,我必须为学校制作。毕竟为什么我会在循环中需要函数,直到它们退出循环。我的老师会因为有不必要的功能而让我失望吗?

一方面不太好:如何在函数中更改主例程中的变量...我想从num_water变量中减去一个(global num_water - = 1),但是它表示无效语法突出显示等号 -

1 个答案:

答案 0 :(得分:0)

威廉 -

考虑一个简单的基于C的状态机,其中一个函数运行状态机,并且基于当前状态将调度到任意数量的函数。状态机永远运行,如

bool done=0;
while(done == no)
{
  switch(state)
  {
    case SOME_STATE: do_thing_for_this_state(); break;
    case OTHER_STATE: ...
  }
}

while循环在概念上没有区别:

while (done == no)
{
   do things
}

如果"做事情"块很简单,代码可以很容易地读取和理解,然后将它留在while块中就可以了。

如果"做事情"块很复杂,问问自己:这段代码是否易于阅读?它是否更有意义,如果它被分成块,每个块都是一个描述性命名的函数?如果是这样,你就可以在while循环中调用函数。

另外,如果对#"做事情有意义的话。阻止在别处重复使用,那么它也是一个独立的功能。

你心中最后的考虑应该是表现。如果您正在为嵌入式处理器,DSP,低水平电信或发射太空飞行器编写关键任务代码,那么,是的。执行函数调用需要少量的CPU周期。对于编写的所有代码的极少量,存在性能方面的考虑。

我希望有所帮助。