使用计算PYTHON在while循环中设置新变量

奥利

我正在运行总体模型,总是错误的数字,因为我将变量设置为新值,但是当我想使用旧变量时,循环会自动更新并使用新变量。

juvenile_population = 10
adult_population = 10
senile_population = 1
juvenile_survival = 1
adult_survival = 1
senile_survival = 0
birth_rate = 2
generations = 5


counter = 0
while counter < generations:
    juvenile_population = adult_population * birth_rate
    adult_population = juvenile_population * juvenile_survival
    senile_population = (adult_population * adult_survival) (senile_population * senile_survival)
    total_population = juvenile_population + adult_population + senile_population



    print("Juvenile: ",juvenile_population)
    print("Adult: ",adult_population)
    print("Senile: ",senile_population)
    print("Total: ",total_population)
    counter += 1

一位朋友说要设置新的命名变量,但是在一个循环之后,您是否会再次遇到相同的问题?我希望变量能够更新,但是只有在它们被打印之后才更新,如果那是有道理的。有什么建议么?

迈克尔_j_ward

对于@Selcuk,您可以直接使用变量解包,但是即使格式更好,它看起来也很笨拙:

juvenile_population, adult_population, senile_population, total_population = (adult_population * birth_rate,
                                                                             juvenile_population * juvenile_survival,
                                                                             (adult_population * adult_survival) (senile_population * senile_survival), 
                                                                             juvenile_population + adult_population + senile_population)

我的建议是要么编写一个辅助函数,然后将“ like”值保留在字典中,如下所示:

populations = {'juvenile':  10,
               'adult':     10,
               'senile':    1
               }
survivals = {'juvenile':    1,
             'adult':       1,
             'senile':      0}
birth_rate = 2
generations = 5

def update_population(pops):
    juvie = pops['adult'] * birth_rate
    adults = pops['juvenile'] * survivals['juvenile']
    seniles = pops['adult'] * survivals['adult'] + (pops['senile'] * survivals['senile'])
    return {k:v for k,v in zip(['juvenile','adult','senile'],[juvie,adults,seniles])}

counter = 0
while counter < generations:
    populations = update_population(populations.copy())
    total_population = sum(populations.values())



    print("Juvenile: ",populations['juvenile'])
    print("Adult: ",populations['adult'])
    print("Senile: ",populations['senile'])
    print("Total: ",total_population)
    counter += 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL 使用 If-Condition 在 While 循环中设置变量

来自分类Dev

在while循环中设置变量(Ruby)

来自分类Dev

在Bash的While循环中设置变量

来自分类Dev

在FOR循环中设置变量

来自分类Dev

在for和while循环中使用计数的C ++哨兵。陷入无限循环

来自分类Dev

如何在SQL Server的While循环中设置变量

来自分类Dev

设置变量以捕获while循环中的组而不更改$ 1

来自分类Dev

while循环中JQuery的计算

来自分类Dev

循环中的python变量

来自分类Dev

While与For循环中的变量范围

来自分类Dev

while循环中的变量不变

来自分类Dev

While与For循环中的变量范围

来自分类Dev

从while循环中获取变量

来自分类Dev

while循环中的实例变量

来自分类Dev

在while循环中定义变量

来自分类Dev

在for循环中设置Javascript变量

来自分类Dev

批量在for循环中设置变量

来自分类Dev

在Bash的if循环中设置变量

来自分类Dev

在for循环中设置Javascript变量

来自分类Dev

Python:while循环中定义的函数引用旧变量

来自分类Dev

Python Blackjack Game如何在while循环中携带变量

来自分类Dev

将while循环中的变量结果存储到字典(python)

来自分类Dev

python的while循环中未定义变量?

来自分类Dev

在 while 循环中使用迭代器创建新对象

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

使用类级变量在while循环中停止

来自分类Dev

BASH:在while循环中无法使用变量唤醒

来自分类Dev

PHP-在while循环中使用变量($$)