Hướng dẫn does python 2 have print? - python 2 có in không?

13

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi là người mới trên Python.

Tôi chạy mã sau trên Python 2.7 và tôi thấy kết quả khác nhau khi tôi sử dụng in hoặc in (). Sự khác biệt giữa hai chức năng này là gì? Tôi đọc các câu hỏi khác, ví dụ: câu hỏi này, nhưng tôi không tìm thấy câu trả lời của mình.

class Rectangle:
    def __init__(self, w, h):
        self.width = w
        self.height = h
    def __str__(self):
        return "(The width is: {0}, and the height is: {1})".format(self.width, self.height)

box = Rectangle(100, 200)
print ("box: ", box)
print "box: ", box

Kết quả là:

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)

Hướng dẫn does python 2 have print? - python 2 có in không?

Đã hỏi ngày 30 tháng 11 năm 2015 lúc 10:45Nov 30, 2015 at 10:45

1

Trong Python 2.7 (và trước đó), print là một tuyên bố có một số đối số. Nó in các đối số với một không gian ở giữa.

Vì vậy, nếu bạn làm

print "box:", box

Trước tiên, nó in chuỗi "hộp:", sau đó là một khoảng trống, sau đó bất cứ điều gì

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
0 in dưới dạng (kết quả của hàm
('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
1 của nó).

Nếu bạn làm

print ("box:", box)

Bạn đã đưa ra một đối số, một tuple bao gồm hai phần tử ("hộp:" và đối tượng ____10).

Tuples in làm đại diện của chúng (chủ yếu được sử dụng để gỡ lỗi), do đó, nó gọi

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
3 của các yếu tố của nó thay vì
('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
1 của chúng (sẽ cung cấp thông điệp thân thiện với người dùng).

Đó là sự khác biệt mà bạn thấy:

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
5 là kết quả của ____11 của hộp của bạn, nhưng
('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
7 là
('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
3 của nó.

Trong Python 3 trở lên,

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
9 là một hàm bình thường như bất kỳ chức năng nào khác (vì vậy
print "box:", box
0 in
print "box:", box
1 và
print "box:", box
2 là lỗi cú pháp). Nếu bạn muốn có điều đó trong Python 2.7, hãy đặt

from __future__ import print_function

Ở đầu tệp nguồn của bạn, để làm cho nó sẵn sàng hơn một chút cho hiện tại.

Đã trả lời ngày 30 tháng 11 năm 2015 lúc 10:54Nov 30, 2015 at 10:54

Hướng dẫn does python 2 have print? - python 2 có in không?

REMCOGERLICHREMCOGERLICHRemcoGerlich

29,6K5 Huy hiệu vàng63 Huy hiệu bạc78 Huy hiệu Đồng5 gold badges63 silver badges78 bronze badges

Điều này chủ yếu là một bổ sung cho các câu trả lời khác.

Bạn có thể thấy trong các tập lệnh Python 2

print "box:", box
3 khi việc sử dụng bình thường sẽ là
print "box:", box
4.

Nó sử dụng thực tế là

print "box:", box
5 chỉ là một biểu hiện trong Python 2 với được xem đơn giản là
print "box:", box
6 vì vậy
print "box:", box
7 và
print "box:", box
4 hoạt động giống hệt nhau trong Python 2 - nhưng chỉ hoạt động khi in một biến duy nhấtone single variable

Điểm thú vị là khi bạn xem xét việc di chuyển sang Python 3,

print "box:", box
7 (ở đây, cuộc gọi để in chức năng) đã là cú pháp chính xác.function print) is already the correct syntax.

TL/DR:

print "box:", box
7 trong Python 2 chỉ là một mẹo để giảm bớt sự di chuyển của Python3 bằng cách sử dụng thực tế rằng
print "box:", box
5 chỉ là một biểu thức - hình thức tuple sẽ là
print ("box:", box)
2

Đã trả lời ngày 30 tháng 11 năm 2015 lúc 11:26Nov 30, 2015 at 11:26

Hướng dẫn does python 2 have print? - python 2 có in không?

Serge Ballestaserge BallestaSerge Ballesta

Huy hiệu vàng 138K1111 gold badges114 silver badges234 bronze badges

Trong ví dụ đầu tiên bạn đang in tuple, nhưng không gọi chức năng in. Vì vậy, những điều sau đây là giống hệt nhau:

a = ("box: ", box)
print a

Nói cách khác, trong ví dụ đầu tiên bạn đã tạo một tuple và in nó. Đầu ra khác nhau, cho các kiểu dữ liệu khác nhau.

Được cho là không có sự khác biệt đáng kể giữa chức năng và tuyên bố cho trường hợp của bạn, nhưng vì lợi ích của tương lai, tôi rất tư vấn cho bạn luôn luôn sử dụng chức năng (

('box: ', <__main__.Rectangle instance at 0x0293BDC8>)
box:  (The width is: 100, and the height is: 200)
9). Tuy nhiên, nếu bạn vẫn quan tâm đến sự khác biệt (không liên quan đến trường hợp của bạn), với chức năng in, bạn có thể chỉ định phân tách, kết thúc và nơi xuất ra như mô tả trong tài liệu.

Đã trả lời ngày 30 tháng 11 năm 2015 lúc 10:47Nov 30, 2015 at 10:47

2

Trong Python 2.7 in () nhanh hơn in. Ở đây một bài kiểm tra thực hiện với Reppl.it Python Console Online:

import time

start_time = time.time()
print "lol"
end_time = time.time()
print(end_time - start_time)

start_time_2 = time.time()
print ("lol")
end_time_2 = time.time()
print(end_time_2 - start_time_2)

print((end_time_2 - start_time_2) > (end_time - start_time))

Python 2.7.10
[GCC 4.8.2] on linux
lol
7.08103179932e-05
lol
1.00135803223e-05
False

Đã trả lời ngày 3 tháng 2 năm 2019 lúc 15:41Feb 3, 2019 at 15:41

2

Trong Python 2.7: In không phải là một hàm, nó là một từ khóa và hoạt động như một tuyên bố đặc biệt.

Trước đó, chúng ta cần tìm hiểu thêm về tuple và expr trong Python2.

Nếu chúng ta viết ('Xin chào'): nó được coi là một biểu thức, không phải là một tuple, nó chỉ có thể được coi là một tuple nếu "," được giới thiệu.

eg:

print("hello")
>>> hello
a=("hello")
>>>'hello'
a=("hello", "world")
>>>('hello', "world")
print("hello", "world")
>>> ('hello', 'world')

Vì vậy, trong Python2.7, khi chúng ta sử dụng câu lệnh in với dấu ngoặc đơn, nó vẫn được coi là một tuyên bố không phải là hàm python và giá trị với dấu ngoặc đơn được coi là một tuple hoặc một biểu thức trong khi ở Python 3, in không còn là một tuyên bố được coi là một chức năng.

Để sử dụng chức năng in của Python 3 trong Python2, hãy sử dụng câu lệnh nhập khẩu sau đây,

from __future__ import print_function

Đã trả lời ngày 24 tháng 10 năm 2019 lúc 10:49Oct 24, 2019 at 10:49

Hướng dẫn does python 2 have print? - python 2 có in không?

Có phải in một chức năng trong Python 2?

Tùy chọn in. Trong Python 2, in là một tuyên bố không cần dấu ngoặc đơn. Trong Python 3, in là một hàm và các giá trị cần được viết trong ngoặc đơn.In Python 2, print is a statement that does not need a parenthesis. In Python 3, print is a function and the values need to be written in parenthesis.

Python 2.7 có hỗ trợ in () không?

Chức năng in trong này, từ khóa in trong Python 2.x được thay thế bằng hàm in () trong Python 3.x.Tuy nhiên, dấu ngoặc đơn hoạt động trong Python 2 nếu không gian được thêm vào sau từ khóa in vì trình thông dịch đánh giá nó là một biểu thức.the print keyword in Python 2. x is replaced by the print() function in Python 3. x. However, parentheses work in Python 2 if space is added after the print keyword because the interpreter evaluates it as an expression.

Python 2 và 3 có rất khác nhau không?

Python 3 có cú pháp dễ dàng hơn so với Python 2. Rất nhiều thư viện của Python 2 không tương thích về phía trước.Rất nhiều thư viện được tạo ra trong Python 3 để được sử dụng nghiêm ngặt với Python 3. Python 2 không còn được sử dụng kể từ năm 2020.. A lot of libraries of Python 2 are not forward compatible. A lot of libraries are created in Python 3 to be strictly used with Python 3. Python 2 is no longer in use since 2020.

Python 2 hay 3 tốt hơn?

Trong khi Python 2 có thời hoàng kim vào đầu những năm 2000, Python 3 là lựa chọn tốt nhất để học vào năm 2022. Bạn có thể tìm thấy một số trường hợp mà bạn cần sử dụng Python 2, nhưng trên toàn bộ, Python 3 là ngôn ngữ phổ biến nhất.Kể từ khi Python 2 bị nắng vào năm 2020, Python 3 đã thống trị thế giới lập trình.Python 3 is the best choice to learn in 2022. You might find some circumstances in which you need to use Python 2, but on the whole, Python 3 is the most popular language. Since Python 2 was sunsetted in 2020, Python 3 has dominated the programming world.