Kako tiskati brez nove vrstice ali presledka?
Vprašanje je v naslovu.
To bi rad naredil v [tag:Python]. V tem primeru bi rad naredil v [tag:C]:
V C:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
Izhod:
..........
V Pythonu:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
V Pythonu print
doda \n
ali presledek, kako se lahko temu izognem? To je le primer. Ne recite mi, da lahko najprej sestavim niz in ga nato natisnem. Rad bi vedel, kako "dodati" niza v stdout
.
1749
3
Splošni način
Morda boste morali poklicati tudi
da zagotovite, da se
stdout
takoj splakne.Python 2.6+
Od različice Python 2.6 lahko uvozite funkcijo
print
iz Pythona 3:Tako lahko uporabite spodnjo rešitev iz Pythona 3.
Python 3
V Pythonu 3 je izjava
print
spremenjena v funkcijo. V Pythonu 3 lahko namesto tega naredite:To deluje tudi v Pythonu 2, če ste uporabili
from __future__ import print_function
.Če imate težave s predpomnilnikom, lahko izpis splaknete tako, da dodate argument ključne besede
flush=True
:Vendar upoštevajte, da ključna beseda
flush
ni na voljo v različici funkcijeprint
, uvoženi iz__future__`` v Pythonu 2; deluje le v Pythonu 3, natančneje 3.3 in novejših. V prejšnjih različicah boste morali še vedno ročno splakovati s klicem
sys.stdout.flush()`.Viri
Note: Naslov tega vprašanja je bil nekaj podobnega kot "Kako printf v pythonu?"
Ker ljudje morda pridejo sem in iščejo to na podlagi naslova, Python podpira tudi zamenjavo v slogu printf:
Poleg tega lahko zlahka pomnožite vrednosti nizov:
Nova (od različice Python 3.0) funkcija
print
ima izbirni parameterend
, ki omogoča spreminjanje končnega znaka. Obstaja tudisep
za ločilo.