Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Python3 - tekstin tulostuksen tasaus

juhohe [15.07.2009 09:18:29]

#

Teen komentoriviltä käytettävää tekstipohjaista sananhakuohjelmaa. Ohjelma tulostaa merkkijonoja, joissa on hakusana ja tietty määrä merkkejä, sanoja tai rivejä ennen ja jälkeen hakusanan. Voin helposti muuttaa tulostuksen listaksikin, jossa jokainen alkio on yksi sana.

Miten onnistuisi tulostuksen tasaaminen niin, että esimerkiksi haettava sana keskitettäisiin? Mahdollisesti kuulemma pprintin avulla se voisi onnistua ja ehkä pitäisi säätää tulostuksen leveyttä, mutta tämän enempää en tiedä.

Tässä esimerkkilista, josta voisin haluta vaikka sanan 'netus' keskelle ruutua:

lista = ['et', 'netus', 'et', 'malesuada', 'fames', 'ac', 'turpis', 'egestas.', 'Mauris', 'ut', 'leo.', 'Cras', 'viverra']

Metabolix [15.07.2009 09:57:54]

#

Tässä on yksi tapa:

print("|%-10s|%10s|" % ("koe", "kaniini"))
# |koe       |   kaniini|

Keskittäminen vaatii jonkin sellaisen moduulin käyttöä, joka osaa selvittää ruudun leveyden käyttöjärjestelmältä.

Ehdottamastasi pprint-moduulista voit lukea dokumentaatiosta. Pikavilkaisulla se ei kuitenkaan vaikuta tarkoitukseesi sopivalta.

juhohe [15.07.2009 10:33:25]

#

nyt löytyi myös sellainen kuin str.center(width, fillchar), joka toimii hyvin, jos tarvii näyttää hakusana niin, että vasemmalla ja oikealla on tietty määrä merkkejä. Minulla on siis merkkijono esim tapaan: string = "pa käsitellä hakusana tie".

Nyt löytyi koodinpätkä, jolla selviää, kuinka leveä konsoli on. Siinä on erikseen Unixille ja Windowsille. En tosin tiedä, toimiiko se Linuxilla. Pitää kokeilla kotona.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta