🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
9 messages
9 total messages Started by max Tue, 24 Aug 2010 11:15
"print" do zmiennej string
#27643
Author: max
Date: Tue, 24 Aug 2010 11:15
15 lines
1049 bytes
# poczatek
str1 = "test str"
print(str1)
str2 = print(str1)
print(str2)
# koniec


Dlaczego funkcja print nie zwraca wartości ?
Dlaczego zmienna str2 jest "None" ?
Czy jest możliwe zapisanie tego co wypisuje print/pprint do zmiennej ?

Pozdrawiam

M
Re: "print" do zmiennej string
#27645
Author: Jacek Czerwinski
Date: Tue, 24 Aug 2010 11:41
20 lines
1427 bytes
W dniu 2010-08-24 13:15, max pisze:
> # poczatek
> str1 = "test str"
> print(str1)
> str2 = print(str1)
> print(str2)
> # koniec
>
>
> Dlaczego funkcja print nie zwraca wartości ?
> Dlaczego zmienna str2 jest "None" ?
> Czy jest możliwe zapisanie tego co wypisuje print/pprint do zmiennej ?
>

Ja kojarze w Pythonie drukowanie do "czegokolwiek co ma metode write"
uzywa sie to
print output zmiennna (bez przecinka pomiedzy)

(ew metoda print, pamiec ulomna). Nie musi dziedziczyc z jakiejs klasy, 
PrintWritera itd co jest nieco zaskakujace jak sie ma nawyki.
Re: "print" do zmiennej string
#27646
Author: Mariusz Kruk
Date: Tue, 24 Aug 2010 11:49
28 lines
1413 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "max"
># poczatek
>str1 = "test str"
>print(str1)
>str2 = print(str1)
>print(str2)
># koniec
>
>
>Dlaczego funkcja print nie zwraca wartości ?

Bo tak ma.

>Dlaczego zmienna str2 jest "None" ?

A dlaczego ma być czymś innym?

>Czy jest możliwe zapisanie tego co wypisuje print/pprint do zmiennej ?

Owszem. Reprezentacja tekstowa obiektu jest zwracana przez metodę
__str__() (z tego zresztą korzysta print).

PS: Nie zostawiaj odstępu przed pytajnikiem.
-- 
[------------------------] 
[  Kruk@epsilon.eu.org   ] 
[ http://epsilon.eu.org/ ] 
[------------------------] 
Re: "print" do zmiennej string
#27647
Author: Jacek Czerwinski
Date: Tue, 24 Aug 2010 12:19
16 lines
1271 bytes
W dniu 2010-08-24 13:49, Mariusz Kruk pisze:
> epsilon$ while read LINE; do echo \>"$LINE"; done<  "max"
>> # poczatek
>> str1 = "test str"
>> print(str1)
>> str2 = print(str1)
>> print(str2)
>> # koniec
>>
>>
>> Dlaczego funkcja print nie zwraca wartości ?
>
> Bo tak ma.

Sporo juz nie obcowalem z formalizmem Pythona, czy 'print' to na pewno 
funkcja?
Re: "print" do zmiennej string
#27648
Author: Mariusz Kruk
Date: Tue, 24 Aug 2010 12:41
23 lines
1469 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "Jacek Czerwinski"
>>> # poczatek
>>> str1 = "test str"
>>> print(str1)
>>> str2 = print(str1)
>>> print(str2)
>>> # koniec
>>>
>>> Dlaczego funkcja print nie zwraca wartości ?
>> Bo tak ma.
>Sporo juz nie obcowalem z formalizmem Pythona, czy 'print' to na pewno 
>funkcja?

Nie do końca
http://docs.python.org/reference/simple_stmts.html#print
Dlategom zdziwion, że w ogóle przypisanie do print() zadziałało.
U mnie wyrzuca invalid syntax.

-- 
\------------------------/ 
|  Kruk@epsilon.eu.org   | 
| http://epsilon.eu.org/ | 
/------------------------\ 
Re: "print" do zmiennej string
#27644
Author: Rob Wolfe
Date: Tue, 24 Aug 2010 14:13
32 lines
2084 bytes
On 24 Sie, 13:15, max <m...@max.pl> wrote:
> # poczatek
> str1 = "test str"
> print(str1)
> str2 = print(str1)
> print(str2)
> # koniec
>
> Dlaczego funkcja print nie zwraca wartości ?
> Dlaczego zmienna str2 jest "None" ?

Z tego kodu wynika, ze chcialbys, aby print zwracala string,
ktory wyswietla. Nie robi tego z powodu celowej decyzji projektowej.
`print` ma sluzyc do wrzucania stringa do danego strumienia
(domyslnie sys.stdout) koniec i kropka.
Gdyby zwracala string, to zaraz zaczeto by jej (nad)uzywac do
formatowania
stringa w pamieci.

> Czy jest możliwe zapisanie tego co wypisuje print/pprint do zmiennej ?

Mozna, a rozwiazanie zalezy od wersji Pythona, ktorej uzywasz.

# 2.5
http://docs.python.org/library/stringio.html#module-cStringIO

# 2.6+
>>> a = "aaa".format()
>>> a
'aaa'

RW
Re: "print" do zmiennej string
#27649
Author: Daniel Mróz
Date: Tue, 24 Aug 2010 14:22
14 lines
1373 bytes
On 24.08.2010, Jacek Czerwinski <x@y.z.pl> wrote:
> Sporo juz nie obcowalem z formalizmem Pythona, czy 'print' to na pewno 
> funkcja?
W 3.0 tak.


Pozdrawiam
Beorn

-- 
Daniel 'Beorn' Mróz <beorn@alpha.pl>    http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V!  PS+ PE++ Y+ PGP++ t- 5  X R !tv b+ DI D++ G++ e h*]
[                          r++  y+                           ]
Re: "print" do zmiennej string
#27650
Author: Bart Ogryczak
Date: Thu, 26 Aug 2010 11:24
20 lines
1896 bytes
On Aug 24, 2:19 pm, Jacek Czerwinski <x...@y.z.pl> wrote:
> W dniu 2010-08-24 13:49, Mariusz Kruk pisze:
>
> > epsilon$ while read LINE; do echo \>"$LINE"; done<  "max"
> >> # poczatek
> >> str1 = "test str"
> >> print(str1)
> >> str2 = print(str1)
> >> print(str2)
> >> # koniec
>
> >> Dlaczego funkcja print nie zwraca wartości ?
>
> > Bo tak ma.
>
> Sporo juz nie obcowalem z formalizmem Pythona, czy 'print' to na pewno
> funkcja?

Od 3.0 funkcja, wcześniej statement.
http://www.python.org/dev/peps/pep-3105/
Re: "print" do zmiennej string
#27651
Author: Łukasz Rekucki
Date: Thu, 26 Aug 2010 12:08
35 lines
2212 bytes
On Aug 26, 1:24 pm, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
> On Aug 24, 2:19 pm, Jacek Czerwinski <x...@y.z.pl> wrote:
>
>
>
>
>
> > W dniu 2010-08-24 13:49, Mariusz Kruk pisze:
>
> > > epsilon$ while read LINE; do echo \>"$LINE"; done<  "max"
> > >> # poczatek
> > >> str1 = "test str"
> > >> print(str1)
> > >> str2 = print(str1)
> > >> print(str2)
> > >> # koniec
>
> > >> Dlaczego funkcja print nie zwraca wartości ?
>
> > > Bo tak ma.
>
> > Sporo juz nie obcowalem z formalizmem Pythona, czy 'print' to na pewno
> > funkcja?
>
> Od 3.0 funkcja, wcześniej statement.http://www.python.org/dev/peps/pep-3105/
W 2.6+ też jest ta funkcja jako builtin:

>>> mprint = getattr(__builtins__, "print")
>>> mprint(1, 2, 3)
1 2 3

Oczywiście nie da się jej używać bezpośrednio jako "print", bo "print"
jest słowem kluczowym, ale można to zmienić:

from __future__ import print_function
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads