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
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ậtcủ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ướngLoạ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