2009-06-02 12 views
94

uczę Python i nawet nie można napisać pierwszy przykład:Niepoprawna składnia podczas korzystania z "print"?

print 2 ** 100 

daje SyntaxError: invalid syntax

wskazując na 2.

Dlaczego tak jest? Używam wersji 3.1

+1

Gdzie znalazłaś ten przykład? Czy jest to książka lub strona internetowa? –

+0

Może to być * Uczenie się Pythona *. –

+0

jleedev jest poprawny; jest to Python OReilly Learning 3rd edition 2007. –

Odpowiedz

201

To dlatego, że w Pythonie 3, one zastąpiły printoświadczenie z printfunkcji.

Składnia jest teraz mniej więcej takie same jak wcześniej, ale to wymaga parens:

Z "what's new in python 3" docs:

Old: print "The answer is", 2*2 
New: print("The answer is", 2*2) 

Old: print x,   # Trailing comma suppresses newline 
New: print(x, end=" ") # Appends a space instead of a newline 

Old: print    # Prints a newline 
New: print()   # You must call the function! 

Old: print >>sys.stderr, "fatal error" 
New: print("fatal error", file=sys.stderr) 

Old: print (x, y)  # prints repr((x, y)) 
New: print((x, y))  # Not the same as print(x, y)! 
+0

Zobacz więcej: [Dlaczego instrukcja print nie jest pythonic?] (http://stackoverflow.com/questions/1053849/why-print-statement-is-not-pythonic) – Will

12

Trzeba nawiasów:

print(2**100) 
Powiązane problemy