On Tue, 17 Mar 2009 11:29:41 +0100, nuvolare <nuvol...@email.it> wrote: > Io sto avendo problemi nell'apprendere Python. > Guardate cosa succede a me: > > Sto provando a scrivere ciò che riporta il libro per capire, e trovo > degli esempi, tipo > Codice: > Stampa2Volte('Pippo') > > Dovrebbe stampare 2 volte l'argomento della funzione, quindi Pippo > Pippo. > Invece io visualizzo: > Codice: > >>> Stampa2Volte('Pippo') > Traceback (most recent call last): > File "<pyshell#0>", line 1, in <module> > Stampa2Volte('Pippo') > NameError: name 'Stampa2Volte' is not defined > >>> > > > Qual'è l'errore?
Non hai definito Stampa2Volte. Dove l'hai definito? Se l'hai definito in un file allora devi importarlo (es. se è in test.py devi usare "from test import Stampa2Volte) se ottieni un ImportError... se ne ragionerà. Se l'hai definito nel modulo interattivo, forse hai usato un nome leggermente diverso (le maiuscole/minuscole contano). Scrivi "dir()" per sapere quali sono i nomi correntemente conosciutoi dalla shell interattiva. > Poi su Terminale del Mac scrivo : > Codice: > >>> print "Pippo", > > Come risultato visualizzo : > Codice: > Pippo > > Se lo faccio da IDLE mi dice > Codice: > >>> print "Pippo", > SyntaxError: invalid syntax (<pyshell#16>, line 1) > >>> > > MA qual'è la differenza fra i due? > Ho notato che quanto scrivo Python su Terminale esce Python 2.5, > mentre io ho scaricato ed utilizzo IDLE 3.0, questo può fare queste > differenze? Esatto. In Python 3.0 dovresti scrivere qualcosa come print("Pippo")... prima di confonderti troppo le idee ti dico che: - python 2.x è la linea dei python maturi e stabili, che viene evoluta senza traumi da una decina di anni; - python 3.0 è il futuro: è uscito da pochi mesi e contiene ripensamenti al linguaggio non compatibili col passato. Impararli entrambi, per te che cominci ora, penso ti farebbe confusione a causa delle sottili differenze di sintassi, come quella che hai incontrato. Anche se imparare il 3.0 sarebbe sensato, il 99% dell'esperienza, sia quello che trovi su internet, sia quello che puoi chiedere direttamente alla gente (e.g. qui) è basato sul 2.x. Tutte le librerie (per scrivere interfacce utente, programmi web, connessioni al database, calcoli matematici...) sono compatibili per il 2.5 e la versione per 3.0 deve ancor arrivare. Per questi motivi, anche se il futuro è quello e il linguaggio è "migliore", ti consiglio di usare solo Python 2.5 per imparare. Il passaggio al 3.0 non è traumatico quando si ha esperienza. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python