2012-07-27 24 views
5

Ho uno strano errore utilizzando sep, file, (ecc.) Argomenti della funzione print() di python. Ho provato a google fuori, gironzolare su StackOverflow e leggere python's documentation ma non ho trovato nulla. Ho allegato uno snippet semplice, apprezzerei molto ogni aiuto.Errore Python 2.7 print()

# python 
Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> print("blah"*10, sep=" | ") 
    File "<stdin>", line 1 
    print("blah"*10, sep=" | ") 
         ^
SyntaxError: invalid syntax 

risposta

11

Prova:

from __future__ import print_function 

primo

+0

grazie. ha risolto il problema. quindi come mai la documentazione di Python (vedi il mio post di aggiornamento) specifica diversamente? e, sai dove posso trovare la documentazione pertinente per l'uso nativo della funzione 'print()'? – MrRoth

+2

@MrRoth: leggi la nota sul tuo collegamento;) – phant0m

+1

@MrRoth Devi accettarlo come risposta. – Ash

6

Nella serie 2.x, print è una dichiarazione, mentre in 3.x è una funzione. Se in 2.6+ si desidera avere print come una funzione, si utilizza from __future__ import print_function come prima istruzione di importazione.

Aspettatevi codice per rompere se

0

La funzione di stampa è specifico per Python 3. Avete due soluzioni qui:

scrittura

from __future__ import print_function 

in modo da poter usare come specificato di cdarke.

Oppure si utilizza la stampa come una semplice dichiarazione come dovrebbe essere con le versioni precedenti di Python (print "Hello World").

+0

Il problema con l'uso della vecchia istruzione 'print' è che il separatore non può essere modificato, diversamente dalla funzione corrente' print() '. – cdarke