Tôi muốn dòng mới >>> print(line) abc\ndef 9 hiển thị rõ ràng khi in một chuỗi được lấy từ nơi khác. Vì vậy, nếu chuỗi là 'abc \ ndef', tôi không muốn điều này xảy ra:
>>> print(line) abc defNhưng thay vào đó là:
>>> print(line) abc\ndefCó cách nào để sửa đổi in, hoặc sửa đổi đối số, hoặc có thể hoàn toàn chức năng khác để thực hiện điều này?
Đã hỏi ngày 13 tháng 3 năm 2013 lúc 17:48Mar 13, 2013 at 17:48
Chỉ cần mã hóa nó với codec >>> print "foo\nbar".encode('string_escape') foo\nbar 0.
>>> print "foo\nbar".encode('string_escape') foo\nbarTrong Python3, >>> print "foo\nbar".encode('string_escape') foo\nbar 0 đã trở thành >>> print "foo\nbar".encode('string_escape') foo\nbar 2. Ngoài ra, chúng ta cần cẩn thận hơn một chút về byte/unicode để nó liên quan đến việc giải mã sau khi mã hóa:
>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))Tham chiếu Unicode_escape
Đã trả lời ngày 13 tháng 3 năm 2013 lúc 17:49Mar 13, 2013 at 17:49
Mgilsonmgilsonmgilson
289K60 Huy hiệu vàng605 Huy hiệu bạc676 Huy hiệu Đồng60 gold badges605 silver badges676 bronze badges
4
Một cách khác mà bạn có thể ngăn chặn Python bằng cách sử dụng các ký tự thoát là sử dụng một chuỗi thô như thế này:
>>> print(r"abc\ndef") abc\ndefhoặc
>>> string = "abc\ndef" >>> print (repr(string)) >>> 'abc\ndef'proplem duy nhất sử dụng >>> print "foo\nbar".encode('string_escape') foo\nbar 3 là nó đặt chuỗi của bạn trong các trích dẫn đơn, nó có thể tiện dụng nếu bạn muốn sử dụng báo giá
Đã trả lời ngày 13 tháng 3 năm 2013 lúc 17:59Mar 13, 2013 at 17:59
PuritylakePurityLakePurityLake
1.06010 Huy hiệu bạc18 Huy hiệu đồng10 silver badges18 bronze badges
0
Phương pháp đơn giản nhất: >>> print "foo\nbar".encode('string_escape') foo\nbar 4
Các phương pháp khác sẽ tốt hơn nếu bạn muốn hiển thị tất cả các ký tự thoát, nhưng nếu tất cả những gì bạn quan tâm là Newlines, chỉ cần sử dụng thay thế trực tiếp.
Đã trả lời ngày 13 tháng 3 năm 2013 lúc 18:26Mar 13, 2013 at 18:26
5
Ký tự thoát
Để chèn các ký tự là bất hợp pháp trong một chuỗi, hãy sử dụng một ký tự thoát.
Một nhân vật thoát là một dấu gạch chéo ngược >>> print "foo\nbar".encode('string_escape') foo\nbar 5 theo sau là nhân vật bạn muốn chèn.
Một ví dụ về một ký tự bất hợp pháp là một trích dẫn kép bên trong một chuỗi được bao quanh bởi các trích dẫn kép:
Thí dụ
Bạn sẽ gặp lỗi nếu bạn sử dụng dấu ngoặc kép bên trong một chuỗi được bao quanh bởi các trích dẫn kép:
txt = "Chúng tôi là người được gọi là" người Viking "từ phía bắc."
Hãy tự mình thử »
Để khắc phục sự cố này, hãy sử dụng ký tự thoát >>> print "foo\nbar".encode('string_escape') foo\nbar 6:
Thí dụ
Bạn sẽ gặp lỗi nếu bạn sử dụng dấu ngoặc kép bên trong một chuỗi được bao quanh bởi các trích dẫn kép:
txt = "Chúng tôi là người được gọi là" người Viking "từ phía bắc."
Hãy tự mình thử »
Để khắc phục sự cố này, hãy sử dụng ký tự thoát >>> print "foo\nbar".encode('string_escape') foo\nbar 6:
Mã số | Kết quả | Thử nó |
\ ' | Trích dẫn duy nhất | Thử nó |
\N | ASCII LineFeed (thêm Newline) | Thử nó |
\ ' | Trích dẫn duy nhất | Thử nó |
\ ' | Trích dẫn duy nhất | Thử nó |
\ b | ASCII backspace | Thử nó |
\ ' | Trích dẫn duy nhất | |
Thử nó " | \\ | Thử nó |
\ ' | Trích dẫn duy nhất | Thử nó |
Trình tự thoát cho phép bạn bao gồm các ký tự đặc biệt trong chuỗi. Để làm điều này, chỉ cần thêm một dấu gạch chéo ngược (>>> print "foo\nbar".encode('string_escape')
foo\nbar
5) trước khi nhân vật bạn muốn trốn thoát. Ví dụ, hãy tưởng tượng bạn đã khởi tạo một chuỗi với các trích dẫn đơn: Output: Nhưng nếu bạn bao gồm một dấu nháy đơn mà không thoát khỏi nó, thì bạn sẽ gặp lỗi: Output: Để khắc phục điều này, chỉ cần thoát khỏi dấu nháy đơn: Để thêm các dòng mới vào chuỗi của bạn, hãy sử dụng >>> print(line)
abc\ndef
9: Output: Một điều quan trọng cần nhớ là, nếu bạn muốn đưa một ký tự dấu gạch chéo ngược trong một chuỗi, bạn sẽ cần phải thoát khỏi điều đó. Ví dụ: nếu bạn muốn in một đường dẫn thư mục trong Windows, bạn sẽ cần thoát từng dấu gạch chéo ngược trong chuỗi: Output: Một chuỗi thô có thể được sử dụng bằng cách đặt tiền tố chuỗi với >>> print "foo\nbar".encode('string_escape')
foo\nbar
9 hoặc >>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))
0, cho phép đưa vào dấu gạch chéo ngược mà không cần phải thoát chúng. Ví dụ: Output: Nhưng hãy nhớ rằng các dấu gạch chéo không được phân giải ở cuối chuỗi thô sẽ gây ra và lỗi: Output: Một danh sách đầy đủ các chuỗi thoát có thể được tìm thấy ở đây trong các tài liệu Python. Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầuDây thô
Trình tự thoát phổ biến
Trình tự thoátNghĩa \ Backslash (>>> print "foo\nbar".encode('string_escape')
foo\nbar
5) ' Trích dẫn đơn (>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))
2) " Báo giá kép (>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))
3) \N ASCII LineFeed (thêm Newline) \ b ASCII backspace