我最近遇到了一个问题,就是要列出一个清单。当程序运行时,它会打印greenfly的代,这取决于用户希望看到的代数。你知道吗
generation 1 [10, 10, 10] Total 30
generation 2 [20, 10, 10] Total 40
generation 3 [20, 20, 10] Total 50
generation 4 [40, 20, 20] Total 80
generation 5 [40, 40, 20] Total 100
generation 6 [80, 40, 40] Total 160
如果我想显示这些结果(例如csv),我需要这些结果中的所有信息。但是,当我打印保存此信息的变量时(在本例中为“greenfly”),它只打印程序运行的最后一代。你知道吗
print(greenfly)
(看起来像什么)
[80,40,40]
您将如何运行该程序,以便它打印已显示的所有其他信息:
generation 1 [10, 10, 10] Total 30
generation 2 [20, 10, 10] Total 40
generation 3 [20, 20, 10] Total 50
generation 4 [40, 20, 20] Total 80
generation 5 [40, 40, 20] Total 100
generation 6 [80, 40, 40] Total 160
你能帮忙吗?。。。。。。。。(下面显示完整代码)
greenfly = [popJuveniles,popAdults,popAdults]
Total1 = greenfly[0]+greenfly[1]+greenfly[2]
print("generation 1 ",greenfly,"Total",Total1)
'''popall=[greenfly,Total1]
print (popall)'''
generation = 1
while generations!= 1:
generation = generation + 1
generations = generations - 1
juviniles=greenfly[1]*2
Adult=greenfly[0]
Seniles=greenfly[1]
greenfly=[juviniles,Adult,Seniles]
Total = greenfly[0]+greenfly[1]+greenfly[2]
print("generation",generation,greenfly,"Total",Total)
if Menuchoice =='4':
print("You have chosen option 4 ")
print(greenfly)
循环的每次迭代都会调用这一行,因此每次循环运行时,
greenfly
中包含的任何数据都会被覆盖,从而导致您看到的行为。你知道吗对付这种情况的一种方法是使用
greenfly.append([juviniles,Adult,Seniles])
这应该返回
[[10, 10, 10], [20, 10, 10], [20, 20, 10], ....]
,依此类推。你知道吗记住在循环之前设置
greenfly = []
。你知道吗相关问题 更多 >
编程相关推荐