Hướng dẫn how does python handle backslash? - python xử lý dấu gạch chéo ngược như thế nào?

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về ký tự Backslash Python như là một phần của ký tự chuỗi đặc biệt hoặc để thoát khỏi các ký tự trong một chuỗi.: in this tutorial, you’ll learn about the Python backslash character as a part of a special sequence character or to escape characters in a string.

Giới thiệu về Backslash của Python

Trong Python, dấu gạch chéo ngược (____ 19) là một nhân vật đặc biệt. Nếu bạn sử dụng dấu gạch chéo ngược ở phía trước của một nhân vật khác, nó sẽ thay đổi ý nghĩa của nhân vật đó.

Ví dụ,

s = '\n' print(len(s)) # 1

Code language: PHP (php)
0 là một nhân vật theo nghĩa đen. Nhưng nếu bạn sử dụng ký tự dấu gạch chéo ngược ở phía trước chữ

s = '\n' print(len(s)) # 1

Code language: PHP (php)
0, nó sẽ trở thành ký tự tab (

s = '\n' print(len(s)) # 1

Code language: PHP (php)
2).

Nói chung, dấu gạch chéo ngược có hai mục đích chính.

Đầu tiên, ký tự dấu gạch chéo ngược là một phần của các chuỗi ký tự đặc biệt như ký tự tab

s = '\n' print(len(s)) # 1

Code language: PHP (php)
2 hoặc ký tự dòng mới

s = '\n' print(len(s)) # 1

Code language: PHP (php)
4.

Ví dụ sau in một chuỗi có ký tự dòng mới:

print('Hello,\n World')

Code language: PHP (php)

Output:

Hello, World

\ N là một ký tự duy nhất, không phải hai. Ví dụ:

s = '\n' print(len(s)) # 1

Code language: PHP (php)

Thứ hai, dấu gạch chéo ngược (

Hello, World

9) thoát khỏi các ký tự đặc biệt khác. Ví dụ: nếu bạn có một chuỗi có một trích dẫn duy nhất bên trong một chuỗi được trích xuất như chuỗi sau, bạn cần sử dụng dấu gạch chéo ngược để thoát khỏi ký tự trích dẫn duy nhất:

s = '"Python\'s awesome" She said' print(s)

Code language: PHP (php)

Output:

"Python's awesome" She said

Code language: JavaScript (javascript)

Backslash trong F-String

PEP-498 chỉ định rằng một chuỗi F không thể chứa một ký tự dấu gạch chéo ngược như là một phần của biểu thức bên trong niềng răng xoăn

s = '\n' print(len(s)) # 1

Code language: PHP (php)
6.

Ví dụ sau sẽ dẫn đến lỗi:

colors = ['red','green','blue'] s = f'The RGB colors are:\n {'\n'.join(colors)}' print(s)

Code language: PHP (php)

Error:

SyntaxError: f-string expression part cannot include a backslash

Code language: JavaScript (javascript)

Để khắc phục điều này, bạn cần tham gia các chuỗi trong danh sách

s = '\n' print(len(s)) # 1

Code language: PHP (php)
7 trước khi đặt chúng vào niềng răng xoăn:

colors = ['red','green','blue'] rgb = '\n'.join(colors) s = f"The RGB colors are:\n{rgb}" print(s)

Code language: PHP (php)

Output:

The RGB colors are: red green blue

Dấu gạch chéo ngược trong chuỗi thô

Chuỗi thô coi ký tự dấu gạch chéo ngược (

Hello, World

9) là một đặc tính theo nghĩa đen. Ví dụ sau đây coi ký tự dấu gạch chéo ngược

Hello, World

9 là một ký tự theo nghĩa đen, không phải là một nhân vật đặc biệt:

s = r'\n' print(s)

Code language: PHP (php)

Output:

Hello, World

0

Bản tóm tắt

  • Nhân vật Backslash Python (

    Hello, World

    9) là một ký tự đặc biệt được sử dụng như một phần của chuỗi đặc biệt như

    s = '\n' print(len(s)) # 1

    Code language: PHP (php)
    2 và

    s = '\n' print(len(s)) # 1

    Code language: PHP (php)
    4.
  • Sử dụng Backslash Python (

    Hello, World

    9) để thoát khỏi các ký tự đặc biệt khác trong một chuỗi.
  • Các chuỗi F không thể chứa dấu gạch chéo ngược một phần biểu thức bên trong niềng răng xoăn

    s = '\n' print(len(s)) # 1

    Code language: PHP (php)
    6.
  • Các chuỗi thô coi dấu gạch chéo ngược (\) là một đặc tính theo nghĩa đen.

Bạn có thấy hướng dẫn này hữu ích không?

37

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 có mã này:

Hello, World

1

Tôi muốn đầu ra như:

Hello, World

2

Nhưng thay vào đó tôi gặp một lỗi giống như:

Hello, World

3

Tôi không muốn các dấu gạch chéo ngược được hiểu là trình tự thoát, nhưng là những dấu gạch chéo ngược. Tôi làm nó như thế nào?


Lưu ý rằng nếu chuỗi chỉ nên chứa dấu gạch chéo ngược hơn - nói chung hơn, nên có một số lượng ngược lẻ ở cuối - thì không thể sử dụng chuỗi RAW. Vui lòng sử dụng làm thế nào tôi có thể nhận được một chuỗi với một dấu gạch chéo ngược trong đó? để đóng các câu hỏi đang yêu cầu một chuỗi chỉ với một dấu gạch chéo ngược trong đó. Sử dụng làm thế nào để viết chuỗi chữ bằng Python mà không cần phải thoát khỏi chúng? Khi câu hỏi cụ thể về việc muốn tránh sự cần thiết của các chuỗi thoát.cannot be used. Please use How can I get a string with a single backslash in it? to close questions that are asking for a string with just a backslash in it. Use How to write string literals in python without having to escape them? when the question is specifically about wanting to avoid the need for escape sequences.

Karl Knechtel

59.3k10 Huy hiệu vàng86 Huy hiệu bạc130 Huy hiệu đồng10 gold badges86 silver badges130 bronze badges

Hỏi ngày 1 tháng 8 năm 2010 lúc 2:19Aug 1, 2010 at 2:19

Hướng dẫn how does python handle backslash? - python xử lý dấu gạch chéo ngược như thế nào?

4

Để trả lời trực tiếp câu hỏi của bạn, đặt

s = '"Python\'s awesome" She said' print(s)

Code language: PHP (php)
5 trước chuỗi.

Hello, World

4

Nhưng một giải pháp tốt hơn sẽ là

s = '"Python\'s awesome" She said' print(s)

Code language: PHP (php)
6:

Hello, World

5

(Backslash ở đó đang thoát khỏi một dòng mới, nhưng bạn có thể đặt toàn bộ điều trên một dòng nếu bạn muốn)

Tôi sẽ đề cập rằng bạn có thể sử dụng các dấu gạch chéo phía trước trong các đường dẫn tệp và Python sẽ tự động chuyển đổi chúng thành dấu phân cách chính xác (dấu gạch chéo ngược trên Windows) khi cần thiết. Vì thế

Hello, World

6

nên làm việc. Nhưng vẫn thích sử dụng

s = '"Python\'s awesome" She said' print(s)

Code language: PHP (php)
6 vì điều đó cho thấy rõ những gì bạn đang cố gắng làm.

Đã trả lời ngày 1 tháng 8 năm 2010 lúc 2:22Aug 1, 2010 at 2:22

Hướng dẫn how does python handle backslash? - python xử lý dấu gạch chéo ngược như thế nào?

David Zdavid zDavid Z

124K26 Huy hiệu vàng249 Huy hiệu bạc275 Huy hiệu Đồng26 gold badges249 silver badges275 bronze badges

2

Bạn có thể thoát khỏi chém.Sử dụng

s = '"Python\'s awesome" She said' print(s)

Code language: PHP (php)
8 và bạn chỉ nhận được một dấu gạch chéo.

Đã trả lời ngày 1 tháng 8 năm 2010 lúc 5:22Aug 1, 2010 at 5:22

Avacariuavacariuavacariu

2.6943 huy hiệu vàng24 Huy hiệu bạc25 Huy hiệu đồng3 gold badges24 silver badges25 bronze badges

0

Một cách tiếp cận đơn giản (và được cho là dễ đọc hơn) là sử dụng định dạng và thay thế chuỗi RAW như vậy:

Hello, World

7

hoặc sử dụng phương thức đường dẫn hệ điều hành (và vi mô cho khả năng đọc):

Hello, World

8

Đã trả lời ngày 16 tháng 3 năm 2021 lúc 21:27Mar 16, 2021 at 21:27

Chris Ruddchris RuddChris Rudd

5576 Huy hiệu bạc12 Huy hiệu Đồng6 silver badges12 bronze badges