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
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
Trong Python 3, print
became 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")
Dường như bạn đang sử dụng Python 3.0, trong đó print has turned into a callable function chứ không phải là một tuyên bố.
print('Hello world!')
Trong Python 3.0, print
là một chức năng thông dụng yêu cầu():
print("Hello world")
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")
Trong Python 3, nó là print("something")
, không print "something"
.
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?
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
Bạn phải sử dụng khung với in print("Hello World")
2to3 là một chương trình Python mà đọc nguồn 2.x Python và áp dụng một loạt các bộ sửa lỗi để chuyển đổi nó thành mã Python 3.x hợp lệ
Bạn có thể tìm thêm thông tin tại đây:
Python Documentation: Automated Python 2 to 3 code translation
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!.
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' –
... 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
Đố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