[Python] ciclo while

Marco Buttu mbuttu a oa-cagliari.inaf.it
Mar 6 Ago 2013 09:53:43 CEST


On 08/05/2013 10:06 AM, Gollum1 wrote:
>> Le parentesi sulla print sulla 3 le trovo, boh, scomode
> 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.
Non c'e' alcuna anomalia. In Python 2 `print` non e' una funzione, ma 
una istruzione semplice:

http://docs.python.org/2/reference/simple_stmts.html#the-print-statement

Non puoi usarla all'interno di una espressione:

     >>> print('Vero') if True else print('Falso') # Python 2
       File "<stdin>", line 1
         print('Vero') if True else print('Falso') # Python 2
                                        ^
     SyntaxError: invalid syntax


Non essendo una etichetta, ma una parola chiave:

     >>> from keyword import kwlist # Python 2
     >>> 'print' in kwlist
     True

non puoi assegnarle un altro oggetto:

     >>> print = 33
       File "<stdin>", line 1
         print = 33
               ^
     SyntaxError: invalid syntax


A partire da Python 3 e' invece una funzione (e' una etichetta che fa 
riferimento
ad una funzione):

http://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function

Puoi quindi usarla all'interno di una espressione, come tutte le altre 
funzioni:

     >>> print('Vero') if True else print('Falso') # Python 3
     Vero

Visto che e' una etichetta (un nome), puoi assegnarle un altro oggetto, 
come per
tutte le altre etichette:

     >>> print_ = print # Python 3
     >>> print = 33
     >>> print
     33
     >>> print_
     <built-in function print>
     >>> print_('python')
     python
     >>> print = sum
     >>> sum(range(5))
     10

Non e' per nulla scomoda, e quando si inizia a programmare con Python 3 
ci si rende conto
immediatamente di quanto questo sia più intiutivo rispetto a Python 2

-- 
Marco Buttu

INAF Osservatorio Astronomico di Cagliari
Loc. Poggio dei Pini, Strada 54 - 09012 Capoterra (CA) - Italy
Phone: +39 070 71180255
Email: mbuttu a oa-cagliari.inaf.it

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130806/5513a6e3/attachment-0001.html>


Maggiori informazioni sulla lista Python