Hướng dẫn python raw string notation - ký hiệu chuỗi thô python

Chuỗi RAW Python được tạo bằng tiền tố một chuỗi theo nghĩa đen với ‘r, hoặc‘ r. Chuỗi thô Python coi Backslash [\] là một ký tự theo nghĩa đen. Điều này rất hữu ích khi chúng tôi muốn có một chuỗi chứa dấu gạch chéo ngược và don không muốn nó được coi là một nhân vật thoát.

Chuỗi Raw Python

Hãy nói rằng chúng tôi muốn tạo một chuỗi hi \ nhello trong Python. Nếu chúng ta cố gắng gán nó cho một chuỗi bình thường, \ n sẽ được coi là một dòng mới.Hi\nHello in python. If we try to assign it to a normal string, the \n will be treated as a new line.

s = 'Hi\nHello'
print[s]

Đầu ra:

Hi
Hello

Hãy cùng xem chuỗi RAW giúp chúng ta coi việc đánh dấu dấu gạch chéo ngược như một nhân vật bình thường như thế nào.

raw_s = r'Hi\nHello'
print[raw_s]

Đầu ra: Hi\nHello Hãy cùng xem một ví dụ khác trong đó nhân vật theo sau là dấu gạch chéo ngược không có ý nghĩa đặc biệt nào.

>>> s = 'Hi\xHello'
  File "", line 1
SyntaxError: [unicode error] 'unicodeescape' codec can't decode bytes in position 2-3: truncated \xXX escape

Chúng tôi đã gặp lỗi vì Python không biết cách giải mã ‘\ x, vì nó không có ý nghĩa đặc biệt nào. Hãy để xem cách chúng ta có thể tạo cùng một chuỗi bằng các chuỗi thô.

>>> s = r'Hi\xHello'
>>> print[s]
Hi\xHello

Nếu bạn đang ở trên bảng điều khiển Python và tạo một chuỗi thô như dưới đây.

>>> r'Hi\xHello'
'Hi\\xHello'

Don Tiết bị nhầm lẫn với đầu ra có hai dấu gạch chéo ngược. Nó chỉ để hiển thị nó như một chuỗi Python bình thường, trong đó dấu gạch chéo ngược đang bị thoát ra.

Chuỗi và trích dẫn Python Raw

Khi một dấu gạch chéo ngược được theo sau bởi một trích dẫn trong một chuỗi thô, nó đã thoát ra. Tuy nhiên, dấu gạch chéo ngược cũng vẫn còn trong kết quả. Vì tính năng này, chúng tôi có thể tạo ra một chuỗi RAW của dấu gạch chéo ngược. Ngoài ra, một chuỗi thô có thể có một số ít các dấu gạch chéo ngược ở cuối. Một số chuỗi thô không hợp lệ là:

r'\'  # missing end quote because the end quote is being escaped
r'ab\\\'  # first two backslashes will escape each other, the third one will try to escape the end quote.

Hãy cùng xem xét một số ví dụ chuỗi thô hợp lệ với các trích dẫn.

raw_s = r'\''
print[raw_s]

raw_s = r'ab\\'
print[raw_s]

raw_s = R'\\\"'  # prefix can be 'R' or 'r'
print[raw_s]

Output:

\'
ab\\
\\\"

Đó là tất cả để giới thiệu nhanh chuỗi Raw Python.

Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.

1 câu trả lời

Được sắp xếp bởi: Đặt lại về mặc định

1

Tôi đã thử đường dẫn này = đầu vào [r'input của bạn đường dẫn của bạn: ']

Có vẻ như đường dẫn đó giống như paht = \ path \ the \ user \ đã chọn

Nhân tiện, tôi sử dụng Python3.

Cải thiện câu trả lời này

Đã trả lời ngày 6 tháng 9 năm 2019 lúc 1:10Sep 6, 2019 at 1:10

Thời gian nghỉ phéptime Off

Huy hiệu đồng 2111 bronze badge

1

  • Cảm ơn anh bạn, nó thực sự làm việc cho tôi, bạn đã tiết kiệm rất nhiều thời gian của tôi.

    - & nbsp; ali

    Ngày 30 tháng 10 năm 2021 lúc 6:29

Thêm một bình luận & nbsp; | & nbsp; | 

câu trả lời của bạn

Đăng ký hoặc đăng nhập

Đăng ký bằng Google

Đăng ký bằng Facebook

Đăng ký bằng email và mật khẩu

Đăng như một khách

Tên

E-mail

Yêu cầu, nhưng không bao giờ hiển thị

Bằng cách nhấp vào bài đăng của bạn, bạn đồng ý với Điều khoản dịch vụ, chính sách quyền riêng tư và chính sách cookie của chúng tôi

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt những câu hỏi khác được gắn thẻ

  • REGEX
  • sợi dây
  • python-2.7

Hoặc đặt câu hỏi của riêng bạn.

Trong Python, các chuỗi có tiền tố R hoặc R, chẳng hạn như R '...' và R "...", được gọi là chuỗi thô và coi dấu gạch chéo ngược \ là ký tự theo nghĩa đen. Chuỗi thô rất hữu ích khi xử lý các chuỗi sử dụng nhiều dấu gạch chéo ngược, chẳng hạn như đường dẫn Windows và các mẫu biểu thức thông thường.

Bài viết này mô tả các nội dung sau đây.

  • Trình tự thoát
  • Chuỗi thô coi dấu gạch chéo ngược như các ký tự theo nghĩa đen
  • Chuyển đổi chuỗi bình thường thành chuỗi thô bằng repr []
  • Chuỗi thô không thể kết thúc bằng một số ít các dấu gạch chéo ngược

Trình tự thoát

Chuỗi thô coi dấu gạch chéo ngược như các ký tự theo nghĩa đen

  • Chuyển đổi chuỗi bình thường thành chuỗi thô bằng repr []

Chuỗi thô không thể kết thúc bằng một số ít các dấu gạch chéo ngược = 'a\tb\nA\tB' print[s] # a b # A B

Chuỗi thô coi dấu gạch chéo ngược như các ký tự theo nghĩa đen

Chuyển đổi chuỗi bình thường thành chuỗi thô bằng repr []

Chuỗi thô không thể kết thúc bằng một số ít các dấu gạch chéo ngược = r'a\tb\nA\tB' print[rs] # a\tb\nA\tB

Trong Python, các ký tự không thể được biểu diễn trong một chuỗi bình thường [chẳng hạn như các tab, nguồn cấp dữ liệu. v.v.] được mô tả bằng cách sử dụng chuỗi thoát với dấu gạch chéo ngược \ [chẳng hạn như \ t hoặc \ n], tương tự như ngôn ngữ C.

2. Phân tích từ vựng - Chuỗi và byte theo nghĩa đen - Python 3.9.7 Tài liệu[type[rs]] # print[rs == 'a\\tb\\nA\\tB'] # True

s = 'a \ tb \ na \ tb'print [s]# a b# a b

  • Các chuỗi được đặt trước với r hoặc r, chẳng hạn như r '...' và r "...", được gọi là chuỗi thô và coi dấu gạch chéo ngược \ là ký tự nghĩa đen. Trong các chuỗi thô, các chuỗi thoát không được đối xử đặc biệt.

rs = r'a \ tb \ na \ tb'print [rs]# a \ tb \ na \ tb[len[s]] # 7 print[list[s]] # ['a', '\t', 'b', '\n', 'A', '\t', 'B'] print[len[rs]] # 10 print[list[rs]] # ['a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B']

Không có loại đặc biệt cho chuỗi thô; Nó chỉ là một chuỗi, tương đương với một chuỗi thông thường với các dấu gạch chéo ngược được biểu thị bởi \\.

print [type [rs]]# in

Trong một chuỗi bình thường, một chuỗi thoát được coi là một ký tự, nhưng trong một chuỗi thô, các dấu gạch chéo ngược cũng được tính là ký tự.

Nhận độ dài của một chuỗi [số lượng ký tự] trong Python = 'C:\\Windows\\system32\\cmd.exe' rpath = r'C:\Windows\system32\cmd.exe' print[path == rpath] # True

in [len [s]]# 7print [list [s]]# ['a', '\ t', 'b', '\ n', 'a', '\ t', 'b'] in [ Len [rs]]# 10print [list [rs]]# ['a', '\\', 't', 'b', '\\', 'n', 'a', '\', 'T', 'B']]

Đường dẫn Windows = 'C:\\Windows\\system32\\' # rpath2 = r'C:\Windows\system32\' # SyntaxError: EOL while scanning string literal rpath2 = r'C:\Windows\system32' + '\\' print[path2 == rpath2] # True

Chuyển đổi chuỗi bình thường thành chuỗi thô bằng repr []

Chuỗi thô không thể kết thúc bằng một số ít các dấu gạch chéo ngược

  • Trong Python, các ký tự không thể được biểu diễn trong một chuỗi bình thường [chẳng hạn như các tab, nguồn cấp dữ liệu. v.v.] được mô tả bằng cách sử dụng chuỗi thoát với dấu gạch chéo ngược \ [chẳng hạn như \ t hoặc \ n], tương tự như ngôn ngữ C.

2. Phân tích từ vựng - Chuỗi và byte theo nghĩa đen - Python 3.9.7 Tài liệu = repr[s] print[s_r] # 'a\tb\nA\tB'

s = 'a \ tb \ na \ tb'print [s]# a b# a b

Các chuỗi được đặt trước với r hoặc r, chẳng hạn như r '...' và r "...", được gọi là chuỗi thô và coi dấu gạch chéo ngược \ là ký tự nghĩa đen. Trong các chuỗi thô, các chuỗi thoát không được đối xử đặc biệt.[list[s_r]] # ["'", 'a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B', "'"]

rs = r'a \ tb \ na \ tb'print [rs]# a \ tb \ na \ tb

Không có loại đặc biệt cho chuỗi thô; Nó chỉ là một chuỗi, tương đương với một chuỗi thông thường với các dấu gạch chéo ngược được biểu thị bởi \\. = repr[s][1:-1] print[s_r2] # a\tb\nA\tB print[s_r2 == rs] # True print[r'\t' == repr['\t'][1:-1]] # True

Chuỗi thô không thể kết thúc bằng một số ít các dấu gạch chéo ngược

Trong Python, các ký tự không thể được biểu diễn trong một chuỗi bình thường [chẳng hạn như các tab, nguồn cấp dữ liệu. v.v.] được mô tả bằng cách sử dụng chuỗi thoát với dấu gạch chéo ngược \ [chẳng hạn như \ t hoặc \ n], tương tự như ngôn ngữ C.

  • 2. Phân tích từ vựng - Chuỗi và byte theo nghĩa đen - Python 3.9.7 Tài liệu

s = 'a \ tb \ na \ tb'print [s]# a b# a b # SyntaxError: EOL while scanning string literal print[r'\\'] # \\ # print[r'\\\'] # SyntaxError: EOL while scanning string literal

Các chuỗi được đặt trước với r hoặc r, chẳng hạn như r '...' và r "...", được gọi là chuỗi thô và coi dấu gạch chéo ngược \ là ký tự nghĩa đen. Trong các chuỗi thô, các chuỗi thoát không được đối xử đặc biệt.

rs = r'a \ tb \ na \ tb'print [rs]# a \ tb \ na \ tbput the sequence of characters inside either single quotes, double quotes, or triple quotes and then assign it to a variable. You can look into how variables work in Python in the Python variables tutorial. For example, you can assign a character 'a' to a variable single_quote_character .

Không có loại đặc biệt cho chuỗi thô; Nó chỉ là một chuỗi, tương đương với một chuỗi thông thường với các dấu gạch chéo ngược được biểu thị bởi \\.

print [type [rs]]# inraw string literals that treat backslash [\ ] as a literal character. For example, if we try to print a string with a “\n” inside, it will add one line break. But if we mark it as a raw string, it will simply print out the “\n” as a normal character.

Trong một chuỗi bình thường, một chuỗi thoát được coi là một ký tự, nhưng trong một chuỗi thô, các dấu gạch chéo ngược cũng được tính là ký tự.

Nhận độ dài của một chuỗi [số lượng ký tự] trong Pythonallows all characters in a string literal to remain the same in code and in the material, rather than performing their standard programming functions. Raw strings are denoted with the letter r, or capital R, and might look something like this: R “[hello]”

in [len [s]]# 7print [list [s]]# ['a', '\ t', 'b', '\ n', 'a', '\ t', 'b'] in [ Len [rs]]# 10print [list [rs]]# ['a', '\\', 't', 'b', '\\', 'n', 'a', '\', 'T', 'B']]

Đường dẫn Windowskeeps regular expressions meaningful and confusion-free. Without it, every backslash ['\'] in a regular expression would have to be prefixed with another one to escape it. For example, the two following lines of code are functionally identical − >>> re.

Bài Viết Liên Quan

Chủ Đề