Hướng dẫn how can you put a backslash character in a string python? - làm cách nào bạn có thể đặt ký tự dấu gạch chéo ngược trong chuỗi python?

Sử dụng một chuỗi thô:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'

Lưu ý rằng mặc dù có vẻ sai, nhưng nó thực sự đúng. Chỉ có một dấu gạch chéo ngược trong chuỗi

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
6.

Điều này xảy ra bởi vì khi bạn chỉ nhập

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
6 tại dấu nhắc, Python sẽ hiển thị kết quả của
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
8 trên chuỗi. Điều này dẫn đến điều sau đây (chỉ chú ý một dấu gạch chéo ngược và không có báo giá nào xung quanh chuỗi
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
9):

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"

Và chúng ta hãy tiếp tục vì có nhiều thủ thuật ngược. Nếu bạn muốn có một dấu gạch chéo ngược ở cuối chuỗi và sử dụng phương thức ở trên, bạn sẽ gặp phải một vấn đề:

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string

Chuỗi thô không hoạt động bình thường khi bạn làm điều đó. Bạn phải sử dụng một chuỗi thông thường và thoát khỏi các dấu gạch chéo ngược của mình:

>>> foo = 'baz \\'
>>> print(foo)
baz \

Tuy nhiên, nếu bạn đang làm việc với tên tệp Windows, bạn sẽ gặp một chút đau đớn. Những gì bạn muốn làm là sử dụng dấu gạch chéo phía trước và chức năng

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
0:

myfile = os.path.normpath('c:/folder/subfolder/file.txt')
open(myfile)

Điều này sẽ tiết kiệm rất nhiều việc trốn thoát và làm tóc. Trang này rất tiện dụng khi trải qua điều này một thời gian trước.

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 (____ 21) 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ụ,

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
2 là một ký 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ữ
>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
2, nó sẽ trở thành ký tự tab (
>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
4).

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

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
4 hoặc ký tự dòng mới
>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
6.

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 (

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
1) 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

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
8.

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

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
0

Error:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
1

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

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
9 trước khi đặt chúng vào niềng răng xoăn:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
2

Output:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
3

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 (

>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
1) 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
>>> foo = r'baz \'
  File "<stdin>", line 1
    foo = r'baz \'
                 ^  
SyntaxError: EOL while scanning single-quoted string
1 là một ký tự theo nghĩa đen, không phải là một ký tự đặc biệt:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
4

Output:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
5

Bản tóm tắt

  • Nhân vật Backslash Python (
    >>> foo = r'baz \'
      File "<stdin>", line 1
        foo = r'baz \'
                     ^  
    SyntaxError: EOL while scanning single-quoted string
    
    1) 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ư
    >>> foo = r'baz \'
      File "<stdin>", line 1
        foo = r'baz \'
                     ^  
    SyntaxError: EOL while scanning single-quoted string
    
    4 và
    >>> foo = r'baz \'
      File "<stdin>", line 1
        foo = r'baz \'
                     ^  
    SyntaxError: EOL while scanning single-quoted string
    
    6.
  • Sử dụng Backslash Python (
    >>> foo = r'baz \'
      File "<stdin>", line 1
        foo = r'baz \'
                     ^  
    SyntaxError: EOL while scanning single-quoted string
    
    1) để 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
    >>> foo = r'baz \'
      File "<stdin>", line 1
        foo = r'baz \'
                     ^  
    SyntaxError: EOL while scanning single-quoted string
    
    8.
  • 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?