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?” Show 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 "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ụcGiớ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 ghiMay 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ớiTrong 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ấtNhư 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útVâ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
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
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 |