<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 08/05/2013 10:06 AM, Gollum1 wrote:<br>
</div>
<blockquote
cite="mid:CANTVqs_RHS+rCYYR8GEvEbEbOmPnK9kpnOUweR2+baaQ8iRtbQ@mail.gmail.com"
type="cite">
<blockquote type="cite" style="font-weight: bold; font-style:
italic; color: #000099;">
<pre wrap="">Le parentesi sulla print sulla 3 le trovo, boh, scomode
</pre>
</blockquote>
<pre wrap="">qui ora parte una guerra di religione... :P
per quanto mi riguarda, avendo iniziato da poco ad usare python, è
solo una questione di abitudine, certo è che almeno si uniforma a
tutte le varie chiamate di funzione... era l'unica (credo) anomalia
nell'ambito delle chiamate di funzione.</pre>
</blockquote>
Non c'e' alcuna anomalia. In Python 2 `print` non e' una funzione,
ma una istruzione semplice:<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a
href="http://docs.python.org/2/reference/simple_stmts.html#the-print-statement">http://docs.python.org/2/reference/simple_stmts.html#the-print-statement</a><br>
<br>
Non puoi usarla all'interno di una espressione:<br>
<br>
>>> print('Vero') if True else print('Falso') # Python
2<br>
File "<stdin>", line 1<br>
print('Vero') if True else print('Falso') # Python 2<br>
^<br>
SyntaxError: invalid syntax<br>
<br>
<br>
Non essendo una etichetta, ma una parola chiave:<br>
<br>
>>> from keyword import kwlist # Python 2<br>
>>> 'print' in kwlist<br>
True<br>
<br>
non puoi assegnarle un altro oggetto:<br>
<br>
>>> print = 33<br>
File "<stdin>", line 1<br>
print = 33<br>
^<br>
SyntaxError: invalid syntax<br>
<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
A partire da Python 3 e' invece una funzione (e' una etichetta che
fa riferimento<br>
ad una funzione):<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a
href="http://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function">http://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function</a><br>
<br>
Puoi quindi usarla all'interno di una espressione, come tutte le
altre funzioni:<br>
<br>
>>> print('Vero') if True else print('Falso') # Python
3<br>
Vero<br>
<br>
Visto che e' una etichetta (un nome), puoi assegnarle un altro
oggetto, come per<br>
tutte le altre etichette:<br>
<br>
>>> print_ = print # Python 3<br>
>>> print = 33<br>
>>> print<br>
33<br>
>>> print_<br>
<built-in function print><br>
>>> print_('python')<br>
python<br>
>>> print = sum <br>
>>> sum(range(5))<br>
10<br>
<br>
Non e' per nulla scomoda, e quando si inizia a programmare con
Python 3 ci si rende conto<br>
immediatamente di quanto questo sia più intiutivo rispetto a Python
2<br>
<pre class="moz-signature" cols="72">--
Marco Buttu
INAF Osservatorio Astronomico di Cagliari
Loc. Poggio dei Pini, Strada 54 - 09012 Capoterra (CA) - Italy
Phone: +39 070 71180255
Email: <a class="moz-txt-link-abbreviated" href="mailto:mbuttu@oa-cagliari.inaf.it">mbuttu@oa-cagliari.inaf.it</a></pre>
</body>
</html>