Hướng dẫn what does r do to a string in python? - r làm gì với một chuỗi trong python?

Đã hỏi 6 năm, 11 tháng trước 6 years, 11 months ago

Đã xem 156k lần 156k times

Tôi muốn hiểu tại sao chúng ta sử dụng R trước một tên đường dẫn trong Python như

dirname = r'C:\temp\parts'

Hướng dẫn what does r do to a string in python? - r làm gì với một chuỗi trong python?

đệ quy

82.1K32 Huy hiệu vàng148 Huy hiệu bạc237 Huy hiệu đồng32 gold badges148 silver badges237 bronze badges

Đã hỏi ngày 16 tháng 11 năm 2015 lúc 5:29Nov 16, 2015 at 5:29

0

s = 'Hi\nHello'
print(s)
0 có nghĩa là chuỗi sẽ được coi là chuỗi thô.raw string.

Xem tài liệu tham khảo Python 2 chính thức về "Chuỗi chữ":

Khi có tiền tố

s = 'Hi\nHello'
print(s)
1 hoặc
s = 'Hi\nHello'
print(s)
2, một ký tự sau dấu gạch chéo ngược được bao gồm trong chuỗi mà không thay đổi và tất cả các dấu gạch chéo ngược được để lại trong chuỗi. Ví dụ: chuỗi chữ
s = 'Hi\nHello'
print(s)
3 bao gồm hai ký tự: dấu gạch chéo ngược và chữ thường
s = 'Hi\nHello'
print(s)
4. Trích dẫn chuỗi có thể được thoát ra bằng dấu gạch chéo ngược, nhưng dấu gạch chéo ngược vẫn còn trong chuỗi; Ví dụ,
s = 'Hi\nHello'
print(s)
5 là một chuỗi hợp lệ bao gồm hai ký tự: dấu gạch chéo ngược và báo giá kép;
s = 'Hi\nHello'
print(s)
6 không phải là một chuỗi hợp lệ theo nghĩa đen (ngay cả một chuỗi thô cũng không thể kết thúc trong một số lượng dấu gạch chéo ngược). Cụ thể, một chuỗi thô không thể kết thúc trong một dấu gạch chéo ngược (vì dấu gạch chéo ngược sẽ thoát khỏi ký tự trích dẫn sau). Cũng lưu ý rằng một dấu gạch chéo ngược duy nhất theo sau là một dòng mới được hiểu là hai ký tự đó là một phần của chuỗi, không phải là tiếp tục dòng.

Wevah

28.1K7 Huy hiệu vàng85 Huy hiệu bạc72 Huy hiệu đồng7 gold badges85 silver badges72 bronze badges

Đã trả lời ngày 16 tháng 11 năm 2015 lúc 5:30Nov 16, 2015 at 5:30

Hướng dẫn what does r do to a string in python? - r làm gì với một chuỗi trong python?

Rahul Tripathirahul TripathiRahul Tripathi

164K31 Huy hiệu vàng268 Huy hiệu bạc324 Huy hiệu đồng31 gold badges268 silver badges324 bronze badges

3

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:

s = 'Hi\nHello'
print(s)
7 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.