1
我一直在編碼約1年半,現在和關閉一格,但我仍然沒有得到格在Python中是如何工作的。填充多變量
所以我的問題是,我必須做出一個網格,顯示人口模型。所以我需要用不同的變量填充我的網格,這些變量對於網格中的每一行都有所不同:
我一直在編碼約1年半,現在和關閉一格,但我仍然沒有得到格在Python中是如何工作的。填充多變量
所以我的問題是,我必須做出一個網格,顯示人口模型。所以我需要用不同的變量填充我的網格,這些變量對於網格中的每一行都有所不同:
你真的不需要一個網格的概念來完成你想要的東西。您只需要generator
即可將您的人口從一代傳播到下一代。然後,您可以使用Python的Format Specification Mini-Language在與您的示例輸出相匹配的表中打印值。
def propagate(num_generations, population_start = None):
if population_start is None:
population = [10, 10, 10, 30]
else:
population = population_start
for gen in range(num_generations):
yield population
population = [population[1]*2, population[0], population[1]]
population.append(sum(population))
def print_propagation(num_generations, population_start = None):
print('GENERATION\tJUVENILES\tADULTS\tSENILES\t\tTOTAL')
for gen, pops in enumerate(propagate(num_generations, population_start)):
print('{:^10}\t{:^8}\t{:^6}\t{:^7}\t\t{:^5}'.format(gen, *pops))
可以使用上述功能,像這樣:
>>> list(propagate(6))
[[10, 10, 10, 30],
[20, 10, 10, 40],
[20, 20, 10, 50],
[40, 20, 20, 80],
[40, 40, 20, 100],
[80, 40, 40, 160]]
>>> print_propagation(6)
GENERATION JUVENILES ADULTS SENILES TOTAL
0 10 10 10 30
1 20 10 10 40
2 20 20 10 50
3 40 20 20 80
4 40 40 20 100
5 80 40 40 160
非常感謝您!爲了讓我能更好地理解發生了什麼,請你能解釋一下 - '{:^ 10} \ t {:^ 8} \ t {:^ 6} \ t {:^ 7} \ t \ t {:^ 5} - 是嗎? –
請參閱Python格式規範迷你語言文檔(上面的鏈接)。每一組花括號('{}'s)將包含來自'.format'方法調用的解壓縮參數,'^ 10'字符串表示每個值將在該字段中的該字段中心對齊。 – Billy