[Python] Python e Mac 10.4.11

Daniele Varrazzo piro a develer.com
Mar 17 Mar 2009 11:46:30 CET


On Tue, 17 Mar 2009 11:29:41 +0100, nuvolare <nuvolare a 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


Maggiori informazioni sulla lista Python