Re: [Python] ciclo while
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/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
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/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
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
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