2012-11-08 6 views
9

Perché Python segnala errori diversi per lo stesso motivo, i programmi con le righe 1 e 2 del codice?Errore identico ma segnalazione di errore diversa. Perché?

voglio dire:

print(1 

Error: unexpected EOF while parsing 

ma

a = 1+1 
print(1 

Error: invalid syntax 

stesso problema - ma il messaggio di errore è diverso - motivo?

sys.version_info (major = 3, minore = 2, micro = 0, = releaselevel 'finale', serial = 0)

+4

Che tipo di prompt sono: '->'? O stai parlando di codice Python in un file che esegui? Come? –

+0

-> mostra solo la riga iniziale del codice lì, mi dispiace. C'è prima, programma con 1 riga di codice e secondo programma con 2 linee di codice. – user1810077

+3

Non riesco a riprodurre il primo errore. Quale versione di Python stai usando? –

risposta

2

Nel primo caso pitone è 'cerca' per la sua/comando prima riga. Il minimo per un programma è almeno un'istruzione. Quindi si lamenta della risoluzione anticipata.

Quindi il primo errore EOF (fine del file) significa: 'Ehi, mi aspettavo almeno un comando e improvvisamente la linea è finita ...' 'Sei sicuro che il programma è completato?'

Il secondo errore del precedente è stato eseguito in modo che il compilatore 'sapesse' che questo è un programma.

e l'errore è diversa ma significa:

'Hey Io per ora si dispone di un errore di questa posizione, si può risolvere il tuo della sintassi'?

Spero che il mio modo non accademico non ti distragga :)

+1

2Carlos: Significa che non ho alcuna possibilità di incontrare l'errore "EOF" in qualsiasi altro caso tranne l'esecuzione di 1-lin e programma? – user1810077

+0

È possibile riscontrare lo stesso errore quando si ha il "controllo di flusso" come la lettura di socket o file TCP e viene improvvisamente "interrotto". Quindi diventa strano quando hai a che fare con prese internet e ottieni questo errore ... ti senti come: 'cosa ?? non c'è file ..' ma dopo aver capito cosa significa' file '. Note Geeky: il mainframe z/OS utilizza ancora le denominazioni TAPE per dischi e volumi ... –