[Tutor PyCZ] Re:Print

petr babicka babcca na seznam.cz
Čtvrtek Listopad 24 11:41:44 CET 2005


> ------------ Puvodni zprava ------------
> Od:  <tutor-request na py.cz>
> Predmet: Tutor Digest, Vol 6, Issue 5
> Datum: 22.11.2005 11:58:49
> ----------------------------------------
> Příspěvky do konference  Tutor zasílejte na adresu:
> 	tutor na py.cz
> 
> Pro přihlášení nebo odhlášení použijte WWW rozhraní na adrese"
> 	http://www.py.cz/mailman/listinfo/tutor
> nebo použijte elektronickou poštu, zašlete slovo help v těle dopisu na
> adresu
> 	tutor-request na py.cz
> 
> Správce konference můžete nalézt na adrese
> 	tutor-owner na py.cz
> 
> Když budete odpovídat na příspěvek, změňte, prosím, Subject: na něco
> rozumnějšího než je: "Re: Contents of Tutor digest..."
> 
> 
> 
> Dnešní menu:
> 
>    1. print bez uvodni mezery (Jaroslav Vysoky)
>    2. Re: print bez uvodni mezery (geon)
>    3. RE: print bez uvodni mezery (Petr Prikryl)
>    4. RE: print bez uvodni mezery (Petr Prikryl)
>    5. RE: print bez uvodni mezery (Jaroslav Vysoky)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 22 Nov 2005 10:18:40 +0100
> From: "Jaroslav Vysoky" <vysoky na borka.cz>
> Subject: [Tutor PyCZ] print bez uvodni mezery
> To: "'Konference Tutor portalu PyCZ'" <tutor na py.cz>
> Message-ID: <003f01c5ef45$baf1d540$0901a8c0 na jarda>
> Content-Type: text/plain;	charset="iso-8859-2"
> 
> Existuje způsob, jak přinutit PRINT, aby nevkládal před tištěný objekt
> (není-li na začátku řádku) úvodní mezeru? Pochopitelně to můžu obejít
> naskládáním výstupu do řetězce, ale je mi divný, že by to nešlo...
> 
> Odpusťte začátečníkovi!
> 
> Předem díky!
> 
> Jarda V.
> 
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 22 Nov 2005 10:35:04 +0100
> From: geon <geon na post.cz>
> Subject: Re: [Tutor PyCZ] print bez uvodni mezery
> To: Konference Tutor portalu PyCZ <tutor na py.cz>
> Message-ID: <4382E648.10807 na post.cz>
> Content-Type: text/plain; charset=ISO-8859-2; format=flowed
> 
> Jaroslav Vysoky napsal(a):
> 
> >Existuje způsob, jak přinutit PRINT, aby nevkládal před tištěný objekt
> >(není-li na začátku řádku) úvodní mezeru?Pochopitelně to můžu obejít
> >naskládáním výstupu do řetězce, ale je mi divný, že by to nešlo...
> >  
> >
> ano, nejde, naskládáním do řetězce ("ahoj" + " svete" + "!") je 
> nejjednodusší a nejelegantnější způsob
> 
> >Odpusťte začátečníkovi!
> >
> >  
> >
> Není co odpouštět :-) Toto JE forum pro absolutní začátečníky, nebo pro 
> ty, kteří se tak cítí ;-)
> 
> geon
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Tue, 22 Nov 2005 10:57:31 +0100
> From: "Petr Prikryl" <PrikrylP na skil.cz>
> Subject: RE: [Tutor PyCZ] print bez uvodni mezery
> To: "Konference Tutor portalu PyCZ" <tutor na py.cz>
> Message-ID:
> 	<E8AE1CAFC84D634A9CCC887B8AAB15EC03DDEE na skil01.skil.mistni>
> Content-Type: text/plain;	charset="iso-8859-2"
> 
> 
> 
> Jaroslav Vysoky...
> [...]
> > Existuje způsob, jak přinutit PRINT, aby nevkládal před tištěný objekt
> > (není-li na začátku řádku) úvodní mezeru? Pochopitelně to můžu obejít
> > naskládáním výstupu do řetězce, ale je mi divný, že by to nešlo...
> 
> print je tak udělaný proto, protože většinou
> se takové chování hodí. Mezeru vkládá jakoby
> čárka pro oddělování parametrů příkazu print.
> Místo čárky můžu použít plus '+' a pak se 
> parametry zřetězí. Pokud to ovšem nejsou řetězce, 
> musím je přes str() na řetězce převést:
> 
> >>> print 'a', 'b', 'c', 123
> a b c 123
> >>> print 'a' + 'b' + 'c' + str(123)
> abc123
> 
> Pokud by bylo řetězených hodnot moc, 
> bývá lepší si je předem naskládat
> do seznamu a ten pak najednou zřetězit.
> V takovém případě se zase musím postarat
> o to, aby řetězené části byly řetězce:
> 
> >>> L = ['a', 'b', 'c', 123]
> >>> L
> ['a', 'b', 'c', 123]
> >>> print ' '.join(L)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: sequence item 3: expected string, int found
> 
> 
> Parametrem metody join() zabudovaného
> řetězcového typu je oddělovací řetězec.
> Příklad:
> 
> >>> L = ['a', 'b', 'c', str(123)]
> >>> L
> ['a', 'b', 'c', '123']
> >>> print '|'.join(L)
> a|b|c|123
> >>> print ''.join(L)
> abc123
> 
> Pokud potřebuji vypisovat text postupně
> (například v cyklu]), pak nemůžu použít
> příkaz print, který mi tam vždycky
> přidá alespoň mezeru nebo konec řádku.
> V takovém případě musím použít klasický
> výpis do souboru, v tomto případě na
> sys.stdout:
> 
> import sys
> sys.stdout.write('a')
> sys.stdout.write('b')
> sys.stdout.write('c')
> sys.stdout.write(str(123))
> 
> Výsledkem bude 'abc123'.
> 
> pepr
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Tue, 22 Nov 2005 11:19:54 +0100
> From: "Petr Prikryl" <PrikrylP na skil.cz>
> Subject: RE: [Tutor PyCZ] print bez uvodni mezery
> To: "Konference Tutor portalu PyCZ" <tutor na py.cz>
> Message-ID:
> 	<E8AE1CAFC84D634A9CCC887B8AAB15EC03DDF2 na skil01.skil.mistni>
> Content-Type: text/plain;	charset="iso-8859-2"
> 
> Opravuji se...
> > Parametrem metody join() zabudovaného
> > řetězcového typu je oddělovací řetězec.
> > Příklad:
> > 
> > >>> L = ['a', 'b', 'c', str(123)]
> > >>> L
> > ['a', 'b', 'c', '123']
> > >>> print '|'.join(L)
> > a|b|c|123
> > >>> print ''.join(L)
> > abc123
> 
> Oddělovač není parametrem metody join(),
> ale vystupuje jako řetězcový objekt,
> jehož metodu join() voláme. Na první pohled
> to sice může vypadat nezvykle, ale je
> to logické.
> 
> pepr
> 
> 
> ------------------------------
> 
> Message: 5
> Date: Tue, 22 Nov 2005 11:50:49 +0100
> From: "Jaroslav Vysoky" <vysoky na borka.cz>
> Subject: RE: [Tutor PyCZ] print bez uvodni mezery
> To: "'Konference Tutor portalu PyCZ'" <tutor na py.cz>
> Message-ID: <004201c5ef52$9a1a78b0$0901a8c0 na jarda>
> Content-Type: text/plain; charset="iso-8859-2"
> 
> Díky všem! 
> 
> Je to jasné. 
> 
> Jarda V. 
> 
> 
> -----Original Message-----
> From: tutor-bounces na py.cz [mailto:tutor-bounces na py.cz]On Behalf Of Petr
> Prikryl
> Sent: Tuesday, November 22, 2005 11:20 AM
> To: Konference Tutor portalu PyCZ
> Subject: RE: [Tutor PyCZ] print bez uvodni mezery
> 
> 
> Opravuji se...
> > Parametrem metody join() zabudovaného
> > řetězcového typu je oddělovací řetězec.
> > Příklad:
> > 
> > >>> L = ['a', 'b', 'c', str(123)]
> > >>> L
> > ['a', 'b', 'c', '123']
> > >>> print '|'.join(L)
> > a|b|c|123
> > >>> print ''.join(L)
> > abc123
> 
> Oddělovač není parametrem metody join(),
> ale vystupuje jako řetězcový objekt,
> jehož metodu join() voláme. Na první pohled
> to sice může vypadat nezvykle, ale je
> to logické.
> 
> pepr
> _______________________________________________
> Tutor mailing list
> Tutor na py.cz
> http://www.py.cz/mailman/listinfo/tutor
> ------------- další část ---------------
> Netextová příloha byla odstraněna...
> Jméno: winmail.dat
> Typ: application/ms-tnef
> Velikost: 2040 bytes
> Popis: [žádný popis není k dispozici]
> Url :
> http://www.py.cz/pipermail/tutor/attachments/20051122/2a4fcaa4/winmail-0001.bin
> 
> ------------------------------
> 
> _______________________________________________
> Tutor mailing list
> Tutor na py.cz
> http://www.py.cz/mailman/listinfo/tutor
> 
> Konec: Tutor Digest, Vol 6, Issue 5
> ***********************************
> 
> 
> 
Nebo je možnost břes znaky.
pokud chceš vložit číslo použij %d
pro řetězec %s
ukázka:
>>>a="Ahoj"
>>>b="Svete"
>>>c=1
>>>print "%s%s%d" % (a,b,c)
>>>AhojSvete1
nebo
>>>print "%s %s %d) % (a,b,c)
Ahoj Svete 1

Snad sem ti kapku pomohl Babča


Další informace o konferenci Tutor