Hướng dẫn what is r () in python? - r () trong python là gì?

163

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.

Đầu tiên tôi thấy nó được sử dụng trong việc xây dựng các biểu thức chính quy trên nhiều dòng như một đối số phương thức thành

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
2, vì vậy tôi cho rằng

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3 là viết tắt của Regex.

Ví dụ:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

Vậy

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3 có nghĩa là gì trong trường hợp này? Tại sao chúng ta cần nó?

Hướng dẫn what is r () in python? - r () trong python là gì?

Remi guan

20.6K17 Huy hiệu vàng62 Huy hiệu bạc84 Huy hiệu đồng17 gold badges62 silver badges84 bronze badges

Hỏi ngày 24 tháng 1 năm 2011 lúc 8:48Jan 24, 2011 at 8:48

Hướng dẫn what is r () in python? - r () trong python là gì?

1

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3 có nghĩa là chuỗi sẽ được coi là một chuỗi thô, điều đó có nghĩa là tất cả các mã thoát sẽ bị bỏ qua.

Ví dụ:

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
6 sẽ được coi là một nhân vật mới, trong khi

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
7 sẽ được coi là các ký tự

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8 theo sau là

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
9.

Khi có tiền tố

lang ver Python 3

Code language: Python (python)
0 hoặc

lang ver Python 3

Code language: Python (python)
1, 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ữ

lang ver Python 3

Code language: Python (python)
2 bao gồm hai ký tự: dấu gạch chéo ngược và chữ thường

lang ver Python 3

Code language: Python (python)
3. 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ụ,

lang ver Python 3

Code language: Python (python)
4 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;

lang ver Python 3

Code language: Python (python)
5 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 bằng một số lượng ngược lẻ). 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.

Nguồn: Chuỗi Python nghĩa đen

Đã trả lời ngày 24 tháng 1 năm 2011 lúc 8:49Jan 24, 2011 at 8:49

2

Nó có nghĩa là Escapes won được dịch. Ví dụ:

r'\n'

là một chuỗi có dấu gạch chéo ngược theo chữ cái

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
9. (Nếu không có

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3, nó sẽ là một dòng mới.)

lang ver Python 3

Code language: Python (python)
8 không đứng về chuỗi byte và được sử dụng trong Python 3, trong đó các chuỗi được Unicode theo mặc định. Trong các chuỗi Python 2.x là các chuỗi byte theo mặc định và bạn đã sử dụng

lang ver Python 3

Code language: Python (python)
9 để chỉ ra Unicode.

Đã trả lời ngày 24 tháng 1 năm 2011 lúc 8:49Jan 24, 2011 at 8:49

Hướng dẫn what is r () in python? - r () trong python là gì?

1

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các chuỗi RAW Python và cách sử dụng chúng để xử lý các chuỗi coi dấu gạch chéo ngược như các ký tự theo nghĩa đen.: in this tutorial, you will learn about Python raw strings and how to use them to handle strings that treat backslashes as literal characters.

Giới thiệu về chuỗi Raw Python

Trong Python, khi bạn đặt trước một chuỗi với chữ cái

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3 hoặc

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)
1, chẳng hạn như

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)
2 và

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)
3, chuỗi đó trở thành một chuỗi thô. Không giống như một chuỗi thông thường, một chuỗi thô coi các dấu gạch chéo ngược (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) là các ký tự theo nghĩa đen.

Chuỗi thô rất hữu ích khi bạn xử lý các chuỗi có nhiều dấu gạch chéo ngược, ví dụ, các biểu thức thông thường hoặc đường dẫn thư mục trên Windows.

Để đại diện cho các ký tự đặc biệt như Tab và Newlines, Python sử dụng dấu gạch chéo ngược (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) để biểu thị sự bắt đầu của một chuỗi thoát. Ví dụ:

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)

Output:

lang ver Python 3

Code language: Python (python)

Tuy nhiên, các chuỗi thô coi dấu gạch chéo ngược (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) là một đặc tính theo nghĩa đen. Ví dụ:

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)

Output:

lang\tver\nPython\t3

Code language: Python (python)

Một chuỗi thô giống như chuỗi thông thường của nó với dấu gạch chéo ngược (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) được biểu thị dưới dạng dấu gạch chéo ngược đôi (

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8):

s1 = r'lang\tver\nPython\t3' s2 = 'lang\\tver\\nPython\\t3' print(s1 == s2) # True

Code language: Python (python)

Trong một chuỗi thông thường, Python tính một chuỗi thoát là một ký tự duy nhất:

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

Code language: Python (python)

Tuy nhiên, trong một chuỗi thô, Python đếm ngược dòng (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) là một ký tự:

s = r'\n' print(len(s)) # 2

Code language: Python (python)

Vì dấu gạch chéo ngược (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
8) thoát khỏi trích dẫn đơn (

lang\tver\nPython\t3

Code language: Python (python)
1) hoặc trích dẫn kép (

lang\tver\nPython\t3

Code language: Python (python)
2), một chuỗi thô không thể kết thúc bằng một số lượng ngược.

Ví dụ:

s = r'\'

Code language: Python (python)

Error:

r'\n'
0

Hoặc

r'\n'
1

Error:

r'\n'
0

Sử dụng chuỗi thô để xử lý đường dẫn tệp trên Windows

Windows OS sử dụng dấu gạch chéo ngược để tách các đường dẫn. Ví dụ:

r'\n'
3

Nếu bạn sử dụng đường dẫn này như một chuỗi thông thường, Python sẽ đưa ra một số lỗi:

r'\n'
4

Error:

r'\n'
5

Python đối xử với \ u trong đường dẫn như một lối thoát Unicode nhưng không thể giải mã nó.

Bây giờ, nếu bạn thoát khỏi dấu gạch chéo ngược đầu tiên, bạn sẽ có các vấn đề khác:

r'\n'
6

Output:

r'\n'
7

Trong ví dụ này,

lang\tver\nPython\t3

Code language: Python (python)
3 là một tab và

lang\tver\nPython\t3

Code language: Python (python)
4 là dòng mới.

Để làm cho nó dễ dàng, bạn có thể biến đường dẫn thành một chuỗi thô như thế này:

r'\n'
8

Chuyển đổi một chuỗi thông thường thành một chuỗi thô

Để chuyển đổi một chuỗi thông thường thành một chuỗi thô, bạn sử dụng hàm repr () tích hợp. Ví dụ:

r'\n'
9

Output:

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
0

Lưu ý rằng chuỗi RAW kết quả có báo giá ở đầu và cuối chuỗi. Để loại bỏ chúng, bạn có thể sử dụng các lát cắt:

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
1

Bản tóm tắt

  • Tiền tố một chuỗi theo nghĩa đen với chữ R hoặc R để biến nó thành một chuỗi thô.
  • Chuỗi thô coi dấu gạch chéo ngược như một nhân vật theo nghĩa đen.

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

R trong Python là gì?

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à không muốn nó được coi là một nhân vật thoát. with 'r' or 'R'. Python raw string treats backslash (\) as a literal character. This is useful when we want to have a string that contains backslash and don't want it to be treated as an escape character.

\ R có nghĩa là gì trong một chuỗi?

R có nghĩa là chuỗi sẽ được coi là một chuỗi thô, điều đó có nghĩa là tất cả các mã thoát sẽ bị bỏ qua.Ví dụ: '\ n' sẽ được coi là một nhân vật mới, trong khi r '\ n' sẽ được coi là các ký tự \ theo sau là n.the string is to be treated as a raw string, which means all escape codes will be ignored. For an example: '\n' will be treated as a newline character, while r'\n' will be treated as the characters \ followed by n .

In là gì ('\ r') trong Python?

'\ r' có nghĩa là "đi đến đầu dòng".go to the beginning of the line".