2017-07-26 48 views
0

我正在運行一個模型,顯示一個高達25代的表。然而隨着行數的增加,使表格顯得雜亂的數字也增加了。這是代碼 - 查看鏈接以瞭解發生的情況。 image of table running如何對齊列

for x in range(gen_num+1): 
    print(gen_number,"\t\t",juveniles_pop,"\t\t",adults_pop,"\t\t",seniles_pop,"\t\t",juveniles_pop+adults_pop+seniles_pop) 
    gen_number+=1 
    seniles_pop = (seniles_pop * seniles_surv) + (adults_pop * adults_surv) 
    juveniles_pop1 = adults_pop * birth_rate 
    adults_pop = juveniles_pop * juveniles_surv 
    juveniles_pop = juveniles_pop1 

回答

1

在這樣的情況下,str.format是一個不錯的選擇:

print("{:<10} {:<10} {:<10} {:<10} {:<10} {:<10} {:<10}".format(gen_number, juveniles_pop, adults_pop, seniles_pop, juveniles_pop, adults_pop, seniles_pop) 

上面的代碼將左對齊數據,每個數字被放置在一個領域具有廣闊的10個空格。您可以根據您的要求調整數量。

下面是一個例子:

In [517]: for _ in range(10): print("{:<10} {:<10}".format(random.randint(0, 123456), random.randint(0, 123456))) 
68434  11170  
95911  46785  
96425  57497  
108395  106972  
45328  877  
97760  22434  
37254  72544  
104063  53772  
72188  116733  
20195  70798 
0

查看使用str.format功能,使您的輸出對準漂亮。 https://docs.python.org/2/library/string.html

特別,這裏是你可能會想如何解決你的問題的例子:

for x in range(gen_num+1): 
    print('{0:{width}} {1:{width}} {2:{width}} {3:{width}} {4:{width}}'.format(gen_number,juveniles_pop,adults_pop,seniles_pop,juveniles_pop+adults_pop+seniles_pop,width=6)) 
    gen_number+=1 
    seniles_pop = (seniles_pop * seniles_surv) + (adults_pop * adults_surv) 
    juveniles_pop1 = adults_pop * birth_rate 
    adults_pop = juveniles_pop * juveniles_surv 
    juveniles_pop = juveniles_pop1