Bản in Python cập nhật cùng một dòng

Là một người dạy nhiều nội dung lập trình cho người mới bắt đầu, tôi thỉnh thoảng vấp phải những câu hỏi như “làm thế nào để bạn in trên cùng một dòng trong Python?”

Tóm lại, có hai cách chính để in trên cùng một dòng trong Python. Đối với Python 2, hãy sử dụng cú pháp in sau. print "Williamson",. Đối với Python 3, hãy sử dụng cú pháp in sau.

print "Live PD"
0. Nếu không, hãy xem phần còn lại của bài viết để biết giải pháp tương thích ngược

Mục lục

Giới thiệu vấn đề

Trong nhiều ngôn ngữ lập trình, in trên cùng một dòng thường là hành vi mặc định. Chẳng hạn, Java có hai chức năng in dòng lệnh

System.out.print[];
System.out.println[];

Như bạn có thể tưởng tượng, hàm

print "Live PD"
1 mặc định trong Java sẽ in mà không có ký tự xuống dòng. Ngược lại, hàm
print "Live PD"
2 sẽ hoạt động giống như hàm
print "Live PD"
1 trong Python. Cụ thể, nó sẽ in bất kỳ chuỗi nào bạn cung cấp cho nó, theo sau là một ký tự xuống dòng [i. e.
print "Live PD"
4]

Tất nhiên, nếu hàm

print "Live PD"
1 trong Python tự động in một ký tự xuống dòng với mỗi lệnh gọi, thì không có cách nào để có được hành vi
print "Live PD"
1 của Java, phải không? . Nếu không, tôi sẽ không có gì để viết ra

Các giải pháp

Để in trên cùng một dòng trong Python, có một vài giải pháp. Thật không may, không phải tất cả các giải pháp đều hoạt động trong tất cả các phiên bản Python, vì vậy tôi đã cung cấp ba giải pháp. một cho Python 2, một cho Python 3 và một giải pháp cuối cùng phù hợp với cả hai

In trên cùng một dòng theo cách cũ

Khi tôi đang tìm kiếm giải pháp cho vấn đề này, tôi đã tìm thấy rất nhiều tài liệu về Python 2 đang nhanh chóng bị loại bỏ [tôi hy vọng]. Điều đó nói rằng, tôi cảm thấy giải pháp này sẽ hữu ích cho bất kỳ ai vẫn làm rung chuyển nó

Dù sao đi nữa, khi bạn in một cái gì đó bằng Python 2, cú pháp giống như Python 3, nhưng bạn bỏ qua dấu ngoặc đơn

print "Live PD"

Tất nhiên, trong cả hai trường hợp, hành vi mặc định là in bằng một dòng mới. Do đó, chúng ta sẽ cần thêm một chút cú pháp thông minh—dấu phẩy

print "Live PD",

Bây giờ, chức năng in sẽ loại trừ dòng mới. Tuy nhiên, giải pháp này sẽ thêm một khoảng trắng vào cuối chuỗi. Ngoài ra, bạn có thể nhận thấy rằng giải pháp này không in ngay lập tức. Nếu điều đó xảy ra, bạn có thể gọi tới số

print "Live PD"
7

In trên cùng một dòng với chức năng ghi

May mắn thay, chúng ta có thể thu hẹp khoảng cách giữa Python 2 và 3 bằng cách sử dụng một hàm trong thư viện

print "Live PD"
8.
print "Live PD"
9. Hàm này hoạt động giống như hàm
print "Live PD"
1, nhưng không có dòng mới ngầm

import sys
sys.stdout.write["Breaking Bad"]

Một lần nữa, vì không có dòng mới, bạn có thể cần xóa bộ đệm để xem bất kỳ kết quả nào

import sys
sys.stdout.write["Breaking Bad"]
sys.stdout.flush[]

Trong cả hai trường hợp, giải pháp này sẽ hoàn thành công việc trong cả hai phiên bản Python

In trên cùng một dòng theo cách mới

Trong Python 3,

print "Live PD"
1 là một hàm tiêu chuẩn. Kết quả là, nó có thêm cơ hội cho các thông số. Đặc biệt, có một đối số từ khóa có tên là
print "Live PD",
2 mặc định là một số ký tự xuống dòng. Bạn có thể dễ dàng thay đổi nó như sau

print["Mob Psycho 100", end=""]

Và, đó là nó. Thay vì chuỗi kết thúc bằng một dòng mới, nó sẽ kết thúc bằng một chuỗi rỗng. Tất nhiên, giải pháp này đi kèm với cảnh báo giống như hai giải pháp trước đó. bạn có thể cần phải xóa bộ đệm

Hiệu suất

Như mọi khi, tôi muốn xem xét tất cả các giải pháp từ quan điểm về hiệu suất. Để bắt đầu, tôi thường lưu trữ từng giải pháp trong một chuỗi. Để tránh in quá nhiều trong quá trình kiểm tra, tôi đã chọn viết các chuỗi rỗng

setup="""
import sys
"""

write_solution = """
sys.stdout.write[""]
"""

print_solution = """
print["", end=""]
"""

Thật không may, tôi không thể thử nghiệm giải pháp Python 2 trên hệ thống của mình, vì vậy vui lòng chia sẻ kết quả của bạn trong phần nhận xét. Dù sao đi nữa, tôi thích sử dụng thư viện timeit để kiểm tra hiệu suất nhanh và bẩn

>>> import timeit
>>> min[timeit.repeat[stmt=write_solution, setup=setup, repeat=10]]
0.20978069999999605
>>> min[timeit.repeat[stmt=print_solution, setup=setup, repeat=10]]
0.5292953999999952

Rõ ràng, hàm

print "Live PD"
1 có khá nhiều chi phí. Nói cách khác, nếu hiệu suất quan trọng, hãy đi theo con đường
print "Live PD"
9. Mặt khác,
print "Live PD"
1 hoạt động tốt

Tóm tắt một chút

Vâng, đó là nó cho cái này. Kiểm tra khối mã bên dưới để biết danh sách tất cả các giải pháp

# Python 2 only
print "Live PD",

# Backwards compatible [also fastest]
import sys
sys.stdout.write["Breaking Bad"]

# Python 3 only
print["Mob Psycho 100", end=""]

Như mọi khi, nếu bạn biết bất kỳ cách nào khác để in trên cùng một dòng trong Python, hãy cho chúng tôi biết trong phần nhận xét. Trong thời gian chờ đợi, tại sao không nâng cao kiến ​​thức Python của bạn với các bài viết sau

  • Cách đảo ngược từ điển trong Python
  • Cách kiểm tra xem một Danh sách có trống không trong Python

Nếu bạn thích bài viết này hoặc bất kỳ bài viết nào tôi đã liệt kê, hãy cân nhắc gắn bó lâu dài bằng cách trở thành thành viên của cộng đồng

hoặc nhảy vào danh sách gửi thư.

Khi bạn ở đây, tại sao không tận dụng một số cuốn sách Python này

  • Lập trình Python. Cách tiếp cận thông minh cho người mới bắt đầu [Hướng dẫn từng bước với khóa học cấp tốc 8 ngày]
    của Steve Manson
  • Lập trình Python. Cách thông minh hơn và nhanh hơn để học Python trong 7 ngày. Với các bài tập thực hành, câu hỏi phỏng vấn, mẹo và thủ thuật
    của Chris Harvard

Nếu không, tôi đánh giá cao sự hỗ trợ. Cám ơn vì ghé qua

Cách sử dụng Python [42 bài viết]—Dòng điều hướng

Loạt bài hướng dẫn Làm thế nào để Python khác với các bài viết viết mã chuyên sâu thông thường bằng cách khám phá các vấn đề có kích thước byte trong Python. Trong loạt bài này, học sinh sẽ đi sâu vào các chủ đề độc đáo như Cách đảo ngược từ điển, Cách tính tổng các phần tử của hai danh sách và Cách kiểm tra xem tệp có tồn tại không

Mỗi vấn đề được khám phá từ cách tiếp cận ngây thơ đến giải pháp lý tưởng. Thỉnh thoảng, cũng sẽ có một số giải pháp chỉ để cho vui. Ở cuối mỗi bài viết, bạn sẽ tìm thấy một bản tóm tắt đầy đủ các đoạn mã để bạn sử dụng. Đừng ngại lấy những gì bạn cần

Nếu bạn không chắc nên bắt đầu từ đâu, tôi khuyên bạn nên xem danh sách Đoạn mã Python cho các vấn đề hàng ngày của chúng tôi. Ngoài ra, bạn có thể tìm thấy một số đoạn trích ở định dạng sổ ghi chép Jupyter trên GitHub

,

Nếu bạn có một vấn đề của riêng bạn, xin vui lòng hỏi. Một người khác có thể có cùng một vấn đề. Thưởng thức cách sử dụng Python

Chủ Đề