PROBLEMA Problema con Python

Pubblicità

PowerUltimate

Nuovo Utente
Messaggi
62
Reazioni
0
Punteggio
26
Salve a tutti, sto imparando a programmare in python e ho creato un "programmano" cioè quello basilare che per tradizione è:

>>> print = "Hello, World"

Ho installato python sul pc ma appena apro il file mi si chiude subito... Quale è il problema? come posso risolvere?
 
E' innanzi tutto necessario specificare quale versione di python stai usando, in particolare se versione 2 o 3.
In entrambi i casi l'uso di print così come scritto da te è errato.
In python 2.x print si usa come statement, in 3.x come funzione, quindi l'uso corretto è:
Codice:
print "Hello World"
nelle versioni 2.x
Codice:
print ("Hello World")
nelle versioni 3.x

Detto questo, se tu scrivi il codice in un file py e lo esegui, la finestra si chiude in ogni caso subito perchè il programma termina immediatamente dopo aver scritto a schermo "Hello World".
Puoi aggiungere una istruzione che blocchi l'esecuzione del programma, può per esempio essere un raw_input() per python 2.x o input() per python 3.x, in questo modo il programma aspetterà l'inserimento di una riga di testo (in altre parole, aspetta la pressione del tasto invio).
 
Grazie,uso la versione Python 3.3.2: Installer MSI per Windows x86
Probabilmente stavo usando una guida per la vecchia versione.
Potresti linkarmi una guida per la versione 3.3.2 ? grazie per la risposta, ora funziona

Comunque ho provato a inserire entrambi i codici e funziona solo il secondo cioè

print ("Hello World")

Il problema è che lei mi ha detto che quest'ultimo funziona solo per le versioni 2.x , invece nella mia versione 3.3.2 funziona solo lui!
Scusi il disturbo
 
Ultima modifica:
Probabilmente stavo usando una guida per la vecchia versione.
Potresti linkarmi una guida per la versione 3.3.2 ? grazie per la risposta, ora funziona
probabilmente si, le guide per python 2.x sono ancora le più diffuse.
Una guida adattata alla versione 3.2 dall'originale "Think Python" è la seguente: http://faculty.stedwards.edu/mikek/python/thinkpython.pdf (lingua inglese)
Comunque ho provato a inserire entrambi i codici e funziona solo il secondo cioè

print ("Hello World")

Il problema è che lei mi ha detto che quest'ultimo funziona solo per le versioni 2.x , invece nella mia versione 3.3.2 funziona solo lui!
Come è giusto che sia... ho per l'appunto scritto che il primo codice funziona su 2.x, il secondo su 3.x. Forse inganna il fatto che ho scritto la versione dopo il tag CODE, comunque il nocciolo della questione è che in 3.x print è una funzione per cui richiede l'uso delle parentesi, mentre in 2.x è uno statement e non le richiede.
Per essere ancora più completo, posso anche dirti che il tuo codice iniziale
Codice:
print = "hello world"
in python 3.x funziona creando una variabile stringa di nome "print" contenente il testo "hello world".
Il problema in questo caso è che lo scope della variabile sovrasta quello della funzione per cui una volta che scrivi quel codice, tutti gli usi di "print" successivi saranno riferiti alla variabile e non alla funzione. E' comunque un errore logico, anche se l'interprete lo accetta.
 
Ultima modifica:
Grazie per la risposta completa, Posso chiederle se usare il simbolo dell'apostrofo (') al posto delle virgolette (") è la stessa cosa?
 
In python è fondamentalmente la stessa cosa, non mi vengono in mente sul momento alcuni casi per cui si sia vincolati a uno o l'altro stile. In genere si adotta la convenzione che per le stringhe identificative (per esempio chiavi di strutture dati) si usano i singoli apici, mentre per i testi in linguaggio umano si usano i doppi apici, per il semplice fatto che è più facile trovare all'interno del testo apostrofi che andrebbero preceduti dal carattere di escape nel caso si utilizzassero i singoli apici.
In generale comunque sono equivalenti, l'importante è seguire lo stesso stile in tutto il codice per una maggiore leggibilità e compatibilità con eventuali programmi di version control.
 
Ho trovato questa guida che mi sembra la stessa che lei mi ha postato ma in italiano, mi sa dire se è per la verisone 3.3.2?

Pensare da informatico: Imparare con Python

scusi ancora il disturbo
No, è la versione 2.x, infatti usano la scrittura print <messaggio> per la stampa di una stringa.
L'opera sembra la stessa perchè quella che ho postato sopra è in realtà un'adattamento alla versione 3.2 dell'originale che è in versione 2.x, di cui il link che hai postato è la traduzione italiana.
 
Pubblicità
Pubblicità
Indietro
Top