Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Tulostamien ilman rivinvaihtoa

Sivun loppuun

Triton [15.08.2008 18:51:12]

#

Miten pythonissa pystyy tulostamaan, niin ettei se tee rivin vaihtoa? Jos esim. silmukassa tulostetaan sanaa "Auto", niin python tulostaa sen automaattisesti tälleen: "Auto" rivinvaihto "Auto"... Mut jos haluun tulostaa sen näin "AutoAutoAuto...", niin miten toi tehdään?

Edit. sainkin tuohon vastauksen, kun sattumalta löysin googlaamalla eli se hoitu sillä, kun heittää sen pilkun sen print-sanan jälkeen... Ainoaksi ongelmaksi jäi se, että se tulostaa näin "Auto Auto Auto", mutta miten tuon välilöynnin saa pois?

Pekka Karjalainen [15.08.2008 19:13:39]

#

Käytä funktiota sys.stdout.write .

Triton [15.08.2008 19:22:36]

#

siis onko tuo funktio vai metodi eli meinaan sitä, että tulostaako se muotoa sys.stdout.write("sana") vai print sana.sys.stdout.write ?

Andu [15.08.2008 19:24:09]

#

import sys;
sys.stdout.write("sana")

jmp [16.08.2008 11:26:55]

#

Peräkkäin tulostaminen onnistuu myös esim.

print "Auto" * 10

Pekka Karjalainen [16.08.2008 14:06:49]

#

Kyllähän niitä tapoja löytää, jos on kekseliäs.

print ''.join(['sim', 'sala', 'bim'])
print 'sim', '\bsala', '\bbim' # ei toimi kaikkialla!
print '%s%s%s' % ('sim', 'sala', 'bim')

Noista viimeinen on hyödyllinen tekniikka. Jos viestin rakentaa erikseen ja tulostaa yhdellä print-komennolla, ohjelma pysyy selkeänä, ja se voi jopa olla hieman nopeampi kuin monia erillisiä tulostuskomentoja sisältävä ohjelma.

viesti = '%s on %s ohjelmointikieli' % ('Python', 'ihan kiva')
# ...
print viesti

Huomaa kaarisulut %-merkin oikealla puolella. Teknisistä detaljeista kiinnostunut löytää %-operaattorin ylikuormituksen str-luokasta nimellä str.__mod__.

mrkebab [16.08.2008 15:05:24]

#

Triton kirjoitti:

siis onko tuo funktio vai metodi eli meinaan sitä, että tulostaako se muotoa sys.stdout.write("sana") vai print sana.sys.stdout.write ?

Anteeksi, jos on tyhmä kysymys, mutta mitä eroa on funktiolla ja metodilla ?

jmp [16.08.2008 15:10:14]

#

Metodi on luokassa määritelty funktio, eli se yleensä käsittelee jotakin olion sisäistä tietoa. Puhutaan myös jäsenfunktioista.

mrkebab [16.08.2008 15:55:43]

#

Ok. Kiitos tiedosta jmp.

ZcMander [16.08.2008 17:07:26]

#

for i in range(10):
  print "Auto",

Sivun alkuun

Vastaus

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

Tietoa sivustosta