完整代码如下:https://repl.it/repls/UnevenLovingDecagons
带有菌落大小=(randrange(50150))的第29行在循环外
然后在第42行循环开始。
菌落大小也在第45行。
我希望第29行只对群体大小影响一次。对于第二次循环,我希望群体大小只受循环内部发生的事情的影响。我怎么能这么做?你知道吗
部件代码如下:
colony_size=(randrange(50,150))
上面的那个还在循环之外
殖民地大小=(殖民地大小+移民)-死亡
这个在里面
在此处输入代码
在此处输入代码
在此处输入代码
Tags:
您应该有另一个变量来定义第29行的默认值
colony_size
,例如:然后将
colony_size
定义为一个空int,或者在循环之前只定义0
。你知道吗在循环开始时,您希望执行以下操作:
请原谅语法错误,因为我对Python不是很熟悉
你看到的概念是scope。循环在python中没有自己的作用域,为什么在这个问题中要问:Scoping in Python 'for' loops
执行以下代码后:
x和i都包含5。如果在任何其他类型的循环中设置或更改它们,情况也是如此。你知道吗
有几种方法可以控制范围。。最常见的是functions,您在代码中没有使用它。它们的变量包含在自己的作用域中,您必须显式地向它们传递变量(使用return关键字)。您还可以考虑comprehensions,尽管它们的变量在早期版本的python中没有以相同的方式包含。你知道吗
更具体地说,在你的代码中。。您可以考虑将
while True
循环中的所有内容放入函数中。。(以我的函数为例)或者类似的。然后它将在下次运行时使用原始的colony\u大小(因为您没有返回它)
当然,这里可能更简单的选择是使用不同的变量名。你知道吗
相关问题 更多 >
编程相关推荐