2009-05-05 37 views
232

Tại sao tôi nhận được lỗi cú pháp khi in chuỗi bằng Python 3?Lỗi cú pháp khi in bằng Python 3

>>> print "hello World" 
    File "<stdin>", line 1 
    print "hello World" 
        ^
SyntaxError: invalid syntax 
+15

gợi ý: đối với mã tương thích trong python 2.7+ đặt phần này vào phần đầu của mô-đun: 'from __future__ import print_function' –

+0

... import print_function dường như không hoạt động, bạn có cần thay đổi điều gì đó trong báo cáo in hay không ? hoặc nhập khẩu sẽ làm điều đó? – RMiranda

+5

Đối với hồ sơ, trường hợp này sẽ nhận được một thông báo lỗi tùy chỉnh trong Python 3.4.2: https://stackoverflow.com/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print- mean-in-python/ – ncoghlan

Trả lời

314

Trong Python 3, printbecame a function. Điều này có nghĩa rằng bạn cần phải bao gồm ngoặc nay như đề cập dưới đây:

print("Hello World") 
18

Trong Python 3.0, print là một chức năng thông dụng yêu cầu():

print("Hello world") 
15

Dường như bạn đang sử dụng Python 3. Trong Python 3, in ấn đã được thay đổi thành một phương pháp thay của một tuyên bố. Hãy thử điều này:

print("hello World") 
16

Trong Python 3, nó là print("something"), không print "something".

27

Vì trong Python 3, print statement đã được thay thế bằng print() function, với đối số từ khóa để thay thế hầu hết cú pháp đặc biệt của câu lệnh in cũ. Vì vậy, bạn phải viết nó là

print("Hello World") 

Nhưng nếu bạn viết điều này trong chương trình và một số bằng Python 2.x sẽ cố gắng chạy, chúng sẽ gặp lỗi. Để tránh điều này, nó là một thực hành tốt để nhập khẩu chức năng in

from __future__ import print_function 

Bây giờ bạn mã hoạt động trên cả 2.x 3.x &

Kiểm tra bên dưới ví dụ này cũng để làm quen với print() chức năng .

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)! 

Nguồn: What’s New In Python 3.0?

5

Trong Python 2.x print là một keyword, trong khi bằng Python 3.x print trở thành một chức năng, vì vậy cách chính xác để làm điều đó là print(something).

Bạn có thể lấy danh sách các từ khóa cho mỗi phiên bản bằng cách thực hiện như sau:

>>> import keyword 
>>> keyword.kwlist 
7

Bạn phải sử dụng khung với in print("Hello World")

8

Trong Python 3, bạn phải làm print('some code'). Điều này là bởi vì trong Python 3 nó đã trở thành một hàm.Nếu bạn phải, bạn có thể sử dụng mã Python 2 của bạn và chuyển đổi nó sang mã Python 3 bằng cách sử dụng 2to3 - nó là một chương trình tích hợp tuyệt vời đi kèm với Python. Để biết thêm thông tin, hãy xem Python 2to3 - Convert your Python 2 to Python 3 automatically!.

Các vấn đề liên quan