Thoát chuỗi Python

Chuỗi thoát là một chuỗi các ký tự, khi được sử dụng bên trong một ký tự hoặc chuỗi, không đại diện cho chính nó mà được chuyển đổi thành một ký tự hoặc chuỗi ký tự khác có thể khó hoặc không thể diễn đạt trực tiếp, chẳng hạn như dòng mới [\n], tab

Trong chuỗi thoát, trước một ký tự là dấu gạch chéo ngược [\], theo sau là ký tự bạn muốn đại diện cho dòng mới. Chúng tôi có một cái gì đó như thế này \\\n

Ký tự này đóng vai trò là trình khởi tạo trình tự thoát và mọi ký tự [một hoặc nhiều] theo sau nó được coi là trình tự thoát

Phạm vi bài viết

  • Bài viết này sẽ hướng dẫn bạn cách sử dụng escape sequence trong Python. Bạn sẽ hiểu hầu hết các chuỗi thoát với đầu ra mã phù hợp
  • Trong bài viết này, bạn sẽ tìm hiểu cách chúng tôi có thể dịch một ký tự này sang một ký tự khác hoặc một chuỗi ký tự khó hoặc không thể biểu diễn trực tiếp

Giới thiệu về Trình tự thoát trong Python

Giả sử bạn có chuỗi chứa dấu gạch chéo ngược kép [\\\\] và bạn muốn in chuỗi có dấu gạch chéo ngược kép nhưng không thể in trực tiếp chuỗi đó. Vì vậy, ở đây có vai trò của trình tự thoát

Thứ nhất, hiểu trình tự. Chuỗi chỉ là một tập hợp gồm hai hoặc nhiều ký tự và một lối thoát trong đó chuỗi bắt đầu bằng dấu gạch chéo ngược [\\] và các ký tự khác trong tập hợp theo sau dấu gạch chéo ngược đó

Chuỗi thoát là một chuỗi các ký tự, khi được sử dụng bên trong một ký tự hoặc chuỗi, không đại diện cho chính nó mà được chuyển đổi thành ký tự hoặc chuỗi ký tự khác. Vì vậy, chuỗi thoát được hình thành bằng cách sử dụng hai thứ. đầu tiên là dấu gạch chéo ngược [\\] và thứ hai là tập hợp một hoặc nhiều ký tự theo sau dấu gạch chéo ngược đó [\\]

Danh sách chuỗi thoát có sẵn trong Python

Escape SequenceMeaning\'Single quote\\'Double quote\\Backslash\nNewline\rCarriage Return\tHorizontal Tab\bBackspace\fFormfeed\vVertical Tab\0Null Character\N{Name}Ký tự Unicode Cơ sở dữ liệu có tên tra cứu\uxxxxxxxxKý tự Unicode có 16 bit

Cách thoát dấu nháy đơn trong Python

Như chúng ta đã biết, nếu chúng ta sử dụng trực tiếp một trích dẫn bên trong chuỗi và chuỗi đó được đóng bên trong một cặp trích dẫn đơn, thì trình thông dịch sẽ bị nhầm lẫn và đưa ra kết quả lỗi

Ví dụ,
Chúng tôi muốn in đây là ai

Nếu chúng tôi thực hiện điều này trực tiếp, chúng tôi sẽ nhận được thông báo lỗi -

SyntaxError: invalid syntax. Perhaps you forgot a comma?
          ^^^^^^
    print['Who's this?']
Line 1  [Solution.py]

Tại sao lỗi này xảy ra?

Người phiên dịch cần làm rõ. Nó không thể tìm thấy vị trí bắt đầu của một trích dẫn vì nó đã xảy ra ba lần

Làm thế nào để khắc phục?

Để khắc phục vấn đề này, chúng ta có thể sử dụng các chuỗi thoát tại đây

đầu ra

Các ví dụ trên cho thấy cách in một trích dẫn trong [Who’s] bằng cách sử dụng dấu gạch chéo ngược ['\']

Nó xảy ra do dấu gạch chéo ngược ['\'] trước khi bất kỳ ký tự nào nói với trình thông dịch rằng tổ hợp này là một chuỗi thoát trong python, loại bỏ dấu gạch chéo ngược khỏi chuỗi và đặt trích dẫn bên trong chuỗi

n Trình tự thoát trong Python

Giả sử tôi đưa ra một chuỗi, vì vậy nó sẽ không được coi là một dòng mới. Nếu chúng ta muốn in một phần của chuỗi cụ thể trong dòng mới thì sao?

Chúng ta có thể sử dụng “\n” ở đây, lệnh này yêu cầu trình thông dịch in riêng một số ký tự trong dòng mới

Thí dụ

đầu ra

Ví dụ trên cho thấy "Bit" được in trong một dòng mới

Vì vậy, chúng tôi có thể nói rằng chúng tôi sẽ nhận được dòng mới khi chúng tôi nhập \n vào chuỗi trước bất kỳ từ hoặc ký tự nào

Trình tự thoát dấu gạch chéo ngược trong Python

Nếu chúng ta muốn in một dấu gạch chéo ngược thì sao?

Thí dụ

đầu ra

Trình tự thoát Python cho Không gian

Nếu chúng ta muốn thêm khoảng cách tab giữa các từ, thì trình tự thoát này sẽ cung cấp khoảng cách tab giữa các từ hoặc ký tự bằng cách sử dụng “\t”

Thí dụ

đầu ra

Từ ảnh chụp màn hình ở trên, bạn có thể thấy rằng nếu chúng ta muốn có khoảng cách tab giữa hai từ, chúng ta có thể sử dụng chuỗi thoát '\ t' này để in khoảng trắng

Trình tự thoát Backspace trong Python

Trình tự thoát này được sử dụng để loại bỏ khoảng trắng giữa các từ

Thí dụ

đầu ra

Chuỗi thoát Python cho giá trị Hex

Bây giờ, có thể xảy ra trường hợp chúng tôi có các giá trị Hexa và chúng tôi muốn in các bảng chữ cái bằng các giá trị Hexa của chúng?

Thí dụ

print["\x48\x45\x4C\x4C\x4F\x20\x57\x4F\x52\x4C\x44"]

đầu ra

Như bạn có thể thấy trong ví dụ trên, các ký tự được in theo giá trị Hexa tương ứng của chúng, theo sau là ký tự ‘\x’.  

Trình tự thoát Python cho giá trị Octal

Bây giờ, nếu chúng ta muốn in các bảng chữ cái bằng các giá trị bát phân của chúng thì sao?

Thí dụ

print["\110\105\114\114\117\040\127\117\122\114\104"]

đầu ra

Như bạn có thể thấy trong ví dụ trên, các ký tự được in theo các giá trị bát phân tương ứng của chúng, theo sau là '\'

Xóa tất cả các chuỗi thoát khỏi danh sách

Bây giờ, nếu chúng ta muốn xóa tất cả các chuỗi thoát khỏi danh sách thì sao?

Thí dụ

s = ['Hello','\x50','to','\x44','World']
print[s]

đầu ra

['Hello', 'P', 'to', 'D', 'World']

Trong ví dụ trên, có một danh sách chứa hai giá trị Hex [‘x50’ và ‘x44’], vì vậy nếu chúng ta chỉ cần đặt dấu "\" trước chúng, thì chúng ta có thể thoát khỏi tất cả. Như bạn có thể thấy, “x50” được thay thế bằng giá trị Hex ‘P’ và “x44” được thay thế bằng ‘D’ bằng cách đặt "\" trước chúng

Để bỏ qua tất cả các chuỗi thoát trong chuỗi, chúng ta phải tạo một chuỗi dưới dạng chuỗi thô bằng cách sử dụng 'r' trước chuỗi. Sau chuỗi thoát đó cũng sẽ được coi là ký tự bình thường. Hãy lấy một ví dụ

Thí dụ

đầu ra

Từ ví dụ trên, bạn có thể quan sát thấy rằng khi chúng ta gõ 'r' trước chuỗi, nó sẽ bỏ qua chuỗi thoát, là một dòng mới “\n” trong chuỗi

Trình tự thoát Python loại bỏ

Để loại bỏ tất cả các ký tự từ bên trái và bên phải của một chuỗi đối số, chúng ta sẽ sử dụng chuỗi. hàm dải []

Thí dụ

s = '\r\r\b InterviewBit \r\r\n  '
s.strip
print[s]

đầu ra

Giải thích trình tự thoát

Khi một dấu gạch chéo ngược xuất hiện trong một chuỗi, chuỗi thoát được diễn giải. Sau khi gặp dấu gạch chéo ngược [bên trong một chuỗi], chúng tôi sẽ kiểm tra ký tự tiếp theo [với [\]] trên bảng trình tự thoát, là bảng đã đề cập trước đó. Trình tự bị xóa khỏi chuỗi nếu phát hiện thấy kết quả khớp trong bảng. Và nó được dịch thành ký tự bình thường. Nếu không phát hiện thấy kết quả trùng khớp, thì không có tra cứu nào được thực hiện và chuỗi điều khiển được sao chép nguyên trạng

Thí dụ

# A string with a Valid escape sequence
print["Interview\tBit"]

# A string with an Invalid escape sequence
print["Scaler\cAcademy"]

đầu ra

Interview       Bit
Scaler\cAcademy

Như đã thấy trong đầu ra ở trên, câu lệnh in đầu tiên tạo ra đầu ra với một khoảng trống tab vì \t có trong bảng. Mặt khác, trong câu lệnh in thứ hai, \c vẫn tồn tại, vì không có giải pháp pháp lý nào cho chuỗi đó tồn tại

Ngăn chặn diễn giải trình tự thoát

Có một số trường hợp chúng ta không muốn chuỗi hoạt động như hình trên [có nghĩa là in bản dịch của chuỗi có trong bảng tuần tự]. Một số tình huống được hiển thị bên dưới khi chúng ta phải in cùng một chuỗi thay vì bản dịch của nó

  • Một chuỗi chứa một mạng hoặc một đường dẫn cục bộ
  • Các chuỗi chứa regex mà công cụ regex sẽ xử lý thêm

Phương pháp phòng ngừa

  • Phương pháp 1

    Thật tẻ nhạt và chỉ được khuyên nếu kích thước chuỗi nhỏ hơn. Chỉ cần nhân đôi phản ứng dữ dội cho phép chúng tôi khắc phục những vấn đề như vậy. Trong phương pháp này, chúng tôi tìm dấu gạch chéo ngược đơn theo cách thủ công và nối nó với dấu gạch chéo ngược khác

    Thí dụ

    ________số 8_______

    đầu ra

    Interview        Bit
    Interview \t Bit
    

    Trong trường hợp đầu tiên, "\t" được coi là một không gian tab, nhưng trong trường hợp thứ hai, "\t" được in dưới dạng chữ bình thường

  • Phương pháp 2

    Chúng ta có thể sử dụng khái niệm chuỗi nguyên, i. e. , thêm r hoặc R trước chuỗi, điều này sẽ giữ nguyên các chuỗi thoát dưới dạng chữ

    Chuỗi thoát trong Python là gì?

    Trong các chuỗi Python, dấu gạch chéo ngược “ ” là một ký tự đặc biệt, còn được gọi là ký tự “thoát” . Nó được sử dụng để đại diện cho các ký tự khoảng trắng nhất định. “\t” là tab, “\n” là dòng mới và “\r” là dấu xuống dòng. Cuối cùng, “ ” có thể được sử dụng để thoát khỏi chính nó. “\” là ký tự gạch chéo ngược theo nghĩa đen.

    \r trong Python là gì?

    Trong các chuỗi Python, dấu gạch chéo ngược "\" là một ký tự đặc biệt, còn được gọi là ký tự "thoát". Nó được sử dụng để đại diện cho các ký tự khoảng trắng nhất định. "\t" là một tab, "\n" là một dòng mới và "\r" là dấu xuống dòng .

    Tất cả các ký tự thoát trong Python là gì?

    Các ký tự này được gọi là ký tự đặc biệt. Một số ví dụ là dấu nháy kép ["], dấu nháy đơn ['], v.v. Để in các ký tự đặc biệt này, dấu gạch chéo ngược [\] được sử dụng. Dấu gạch chéo đen này được gọi là chuỗi thoát

Chủ Đề