Re: [Python] ciclo while

2013-08-06 Per discussione Marco Buttu

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: mbu...@oa-cagliari.inaf.it

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ciclo while

2013-08-06 Per discussione Carlos Catucci
2013/8/6 Marco Buttu mbu...@oa-cagliari.inaf.it

 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


Claro que si! Ma siccome il 90% del mondo (framework, host, OS etc.) gira
ancora SOLO su 2.x (con 5z7) non ho occasione di usare il 3. E di
conseguenza fino a che non lo uso non mi diventa memoria muscolare ;)

Carlos
-- 
Siamo coloro che impastano, eppure non abbiamo pane,
siamo coloro che scavano il carbone, eppure abbiamo freddo
Siamo coloro che non hanno nulla, e stiamo venendo a prendere il mondo.
Tassos Livaditis (Poeta greco, 1922, 1988)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ciclo while

2013-08-06 Per discussione Marco Mariani
a parte il  invece di =, non mi e' chiaro lo use case per python 2.5.
posso capire il 4, ma il 5?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ciclo while

2013-08-06 Per discussione Flaper87
2013/8/5 dunkan.mccl...@tiscali.it dunkan.mccl...@tiscali.it

 grazie a tutti anticipatamente.
 sto imparando python
 vorrei capire
 perchè queste righe mi danno errore:
 

 somma = 0.0
 data = 0.0
 while data != :
 somma += float(input
 (numero: ))
 print (somma - , somma)

 

 l'errore è:

   File sommapy.py,
 line 4, in module
 somma += float(input (insert number: ))

 ValueError: could not convert string to float:



Il motivo per il quale vedi quell'errore è perché stai cercando di
convertire una str in float, di preciso, sta cercando di convertire il 
che usi per interrompere il while in float (btw, il codice che hai passato
non è completo, giusto?):

phantom /tmp $ python2.7 test.py
numero: 12
('somma - ', 12.0)
numero:  -- float()
Traceback (most recent call last):
  File test.py, line 4, in module
somma += float(input(numero: ))  -- float()
ValueError: could not convert string to float:

Un'altra cosa che si vede dal codice è che data non sarà mai  perché ciò
che prendi da input lo stai subito convertendo a float e sommando a somma.

Ti sconsiglio l'uso di input. In python, input è uguale a fare
eval(raw_input()) perciò, tutto ciò che prendi da input verrà interpretato
come codice Python. Piuttosto, ti consiglio di usare raw_input, prendere
l'input dell'utente e fare il cast a float lato codice (facendo i vari try
/ except del caso).

-- 
Flavio (@flaper87) Percoco
http://www.flaper87.org
http://github.com/FlaPer87
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ciclo while

2013-08-06 Per discussione Marco Buttu

On 08/06/2013 11:21 AM, Flaper87 wrote:


Ti sconsiglio l'uso di input. In python, input è uguale a fare 
eval(raw_input())...


In Python 2 per essere precisi. In Python 3 dovrebbe usare input() 
piuttosto che raw_input():


http://www.python.org/dev/peps/pep-3111/

--
Marco Buttu

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

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ciclo while

2013-08-06 Per discussione Marco Mariani
scusa, mi riferivo all'uso di  nel msg precedente al tuo. non ho quotato
per non fare top post dal telefono.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python