A kérdés a címben van.
Szeretném [tag:Python] nyelven csinálni. Amit ebben a példában [tag:C]-ben szeretnék csinálni:
C-ben:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
Kimenet:
..........
Pythonban:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
Pythonban a print
egy \n
vagy szóközt ad hozzá, hogyan tudom ezt elkerülni? Ez most csak egy példa. Nehogy azt mondd, hogy előbb felépíthetek egy stringet, majd kinyomtathatom. Szeretném tudni, hogy hogyan lehet a stdout
-ba "append" stringeket csatolni.
import sys
sys.stdout.write('.')
Szükség lehet arra is, hogy felhívja a
sys.stdout.flush()
hogy biztosítsa az stdout
azonnali kiürítését.
A Python 2.6-tól importálhatjuk a Python 3 print
függvényét:
from __future__ import print_function
Ez lehetővé teszi az alábbi Python 3 megoldás használatát.
A Python 3-ban a print
utasítás függvényre változott. A Python 3-ban ehelyett a következőt teheti:
print('.', end='')
Ez a Python 2-ben is működik, feltéve, hogy a from __future__ import print_function
-t használod.
Ha gondot okoz a pufferelés, akkor a flush=True
kulcsszó argumentum hozzáadásával leöblítheted a kimenetet:
print('.', end='', flush=True)
Figyeljünk azonban arra, hogy a flush
kulcsszó nem érhető el a __future__
függvény print
Python 2-ből importált változatában; csak a Python 3-ban működik, pontosabban a 3.3 és újabb verziókban. A korábbi verziókban továbbra is manuálisan kell leöblíteni a sys.stdout.flush()
hívással.
Jegyzet: A kérdés címe korábban valami olyasmi volt, mint "Hogyan nyomtassunk ki pythonban?"
Mivel a cím alapján lehet, hogy az emberek idejönnek, és ezt keresik, a Python is támogatja a printf stílusú helyettesítést:
>>> strings = [ "one", "two", "three" ]
>>>
>>> for i in xrange(3):
... print "Item %d: %s" % (i, strings[i])
...
Item 0: one
Item 1: two
Item 2: three
És, kézzel szorozhatod a string értékeket:
>>> print "." * 10
..........
Az új (Python 3.0-tól) print
függvénynek van egy opcionális end
paramétere, amellyel módosíthatjuk a befejező karaktert. Van sep
is a szeparátorhoz.