2016-04-13 19 views
1

yazdırdığımı çıktıda bazı sorun yaşıyorum ... biçimlendirilmesiPython çıkışı 2.7

Kodum:

def main(): 
    total = 0 
    capital = ["Bern", "London", "Washington D.C"] 
    country = ["Switzerland", "England", "America"] 
    population = [0.126,8.539,0.659] 
    print " Capital\tCountry\t\tPopulation" 
    print "-------------\t-------------\t-------------" 
    for i in range(len(capital)): 
     print "%s\t%s\t%s"% (capital[i-1], country[i-1], population[i-1]) 
main() 

Çıktı: Ben çıkışını yapmaya çalışıyorum

Capital  Country   Population 
------------- ------------- ------------- 
Washington D.C America 0.659 
Bern Switzerland  0.126 
London England 8.539 

Şunlara benzer:

Capital   Country  Population 
------------- ------------- ------------- 
Washington D.C  America   0.659 
Bern    Switzerland  0.126 
London    England   8.539 

d '\ t' ekleyerek ve azaltarak çıktıyı ayarlamak için çok ama bunu ayarlayamadık ...

Herhangi bir yardım çok takdir edilecektir. Teşekkürler

cevap

3

Ben şöyle daha iyi metin dizesi ayarlamaları ile biçimlendirme ve baskılı çıkış yapacak şeyler her tür vardır gibi, str.format kullanmanızı öneririz güzel:

>>> def main(): 
    capital = ["Bern", "London", "Washington D.C"] 
    country = ["Switzerland", "England", "America"] 
    population = [0.126,8.539,0.659] 
    print '{:^15}{:^15}{:^15}'.format(*['Capital','Country','Population']) 
    print '{:^15}{:^15}{:^15}'.format(*['-'*12]*3) 
    for cap,cout,pop in zip(capital,country,population): 
     print '{:<15}{:^15}{:^15}'.format(cap,cout,pop) 


>>> main() 
    Capital  Country  Population 
------------ ------------ ------------ 
Bern    Switzerland  0.126  
London    England   8.539  
Washington D.C  America   0.659 
1

print numaralı telefondan % operatörüne minimum alan genişliği belirtin. Örneğin:

print "%24s" % ("Bern")