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?
Käytä funktiota sys.stdout.write
.
siis onko tuo funktio vai metodi eli meinaan sitä, että tulostaako se muotoa sys.stdout.write("sana") vai print sana.sys.stdout.write ?
import sys; sys.stdout.write("sana")
Peräkkäin tulostaminen onnistuu myös esim.
print "Auto" * 10
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__
.
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 ?
Metodi on luokassa määritelty funktio, eli se yleensä käsittelee jotakin olion sisäistä tietoa. Puhutaan myös jäsenfunktioista.
Ok. Kiitos tiedosta jmp.
for i in range(10): print "Auto",
Aihe on jo aika vanha, joten et voi enää vastata siihen.