Hướng dẫn how do you print a raw string in python? - làm thế nào để bạn in một chuỗi thô trong 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
Hello
1 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.

Muốn tìm hiểu thêm? Tham gia cộng đồng DigitalOcean!

Tham gia cộng đồng DigitalOcean của chúng tôi miễn phí hơn một triệu nhà phát triển! Nhận trợ giúp và chia sẻ kiến ​​thức trong phần Câu hỏi & Câu trả lời của chúng tôi, tìm hướng dẫn và công cụ sẽ giúp bạn phát triển như một nhà phát triển và mở rộng quy mô dự án hoặc doanh nghiệp của bạn, và đăng ký các chủ đề quan tâm.

Đăng ký

Xin hãy cẩn thận rằng vấn đề được xác định không rõ ràng. Hàm

Hi
Hello
2 tích hợp sẽ cung cấp cho bạn biểu diễn chính tắc của chuỗi dưới dạng chuỗi theo nghĩa đen, như thể hiện trong các câu trả lời khác. Tuy nhiên, đó có thể không phải là những gì bạn muốn.

Đối với mỗi chuỗi ngoại trừ chuỗi trống, có nhiều cách chỉ định nội dung chuỗi. Ngay cả một cái gì đó đơn giản như

Hi
Hello
3 cũng có thể được viết là
Hi
Hello
4 hoặc
Hi
Hello
5 hoặc
Hi
Hello
6. Tất cả những thứ này là cùng một chuỗi (và đó là bỏ qua sự lựa chọn của các trích dẫn kèm theo).the same string (and that's ignoring the choice of enclosing quotes).

Sự lựa chọn của Python không phải lúc nào cũng là những gì bạn có thể mong đợi. Newlines sẽ được biểu diễn dưới dạng

Hi
Hello
7, nhưng các ký tự backspace chẳng hạn sẽ được biểu diễn dưới dạng mã hex, không phải là
Hi
Hello
8. Mặt khác, ngay cả những nhân vật thực sự lạ mắt như biểu tượng cảm xúc rất có thể được bao gồm theo nghĩa đen, không trốn thoát.not as
Hi
Hello
8. On the other hand, even really fancy characters like emoji may very well be included literally, not escaped.


Nếu bạn muốn thay đổi hành vi đó, bạn sẽ phải tự viết nó, sau khi xác định các quy tắc cụ thể bạn muốn áp dụng. Một công cụ hữu ích cho việc này là phương thức chuỗi

Hi
Hello
9, có thể chỉ cần áp dụng ánh xạ cho từng điểm mã Unicode trong đầu vào. Chuỗi ClassMethod
raw_s = r'Hi\nHello'
print(raw_s)
0 có thể giúp tạo ra một ánh xạ như vậy, nhưng điều đó vẫn không đủ sức mạnh - bạn bị mắc kẹt khi đưa ra một bộ mã cụ thể để dịch (và bản dịch của chúng), và sau đó mọi thứ không được chỉ định đều chỉ còn một mình.

Nếu bạn muốn chuyển đổi một lượng lớn điểm mã theo cách theo một loại mẫu nào đó, bạn có thể viết một hàm cho điều đó. Tuy nhiên, việc xử lý các trường hợp đặc biệt hoặc nhiều khối riêng của các điểm mã Unicode, có thể kết thúc với rất nhiều logic phân nhánh tẻ nhạt.

Đây là nỗ lực của tôi để có được những điều tốt nhất của cả hai thế giới. Chúng tôi tạo ra một lớp con Dict thực hiện

raw_s = r'Hi\nHello'
print(raw_s)
1 để gửi đến một chức năng xử lý một phạm vi ký tự thích hợp và lưu trữ kết quả. Chúng tôi khởi tạo nó bằng một bản đồ có thể lặp lại hoặc ánh xạ của các giá trị được mã hóa cứng (theo hàm cơ sở
raw_s = r'Hi\nHello'
print(raw_s)
2),
raw_s = r'Hi\nHello'
print(raw_s)
3 cung cấp các cặp
raw_s = r'Hi\nHello'
print(raw_s)
4 (
raw_s = r'Hi\nHello'
print(raw_s)
5 sẽ được sử dụng để tính kết quả cho các ký tự có giá trị số rơi trong
raw_s = r'Hi\nHello'
print(raw_s)
6) và
raw_s = r'Hi\nHello'
print(raw_s)
7 Một lần nữa theo hàm cơ sở
raw_s = r'Hi\nHello'
print(raw_s)
2). Chúng tôi sẽ chấp nhận các ký tự Unicode làm khóa, mặc dù
Hi
Hello
9 sẽ vượt qua các giá trị điểm mã số; Vì vậy, chúng tôi cũng cần dịch trong hàm tạo.

class strtrans(dict):
    def __init__(self, iterable_or_mapping, *args, **kwargs):
        self._handlers = args
        temp = dict(iterable_or_mapping, **kwargs)
        super().__init__({ord(k): v for k, v in temp.items()})
    def __missing__(self, value):
        self[value] = value # if no handler, leave the character untouched
        for func, r in self._handlers:
            if value in r:
                self[value] = func(value)
                break
        return self[value] # not missing any more.

Hãy kiểm tra nó:

Hi
Hello
0

Làm thế nào để bạn lấy một chuỗi thô trong 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à không muốn nó được coi là một nhân vật thoát.prefixing a string literal 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.

Chuỗi thô trong Python là gì?

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.strings prefixed with r or R , such as r'...' and r"..." , are called raw strings and treat backslashes \ as literal characters. Raw strings are useful when handling strings that use a lot of backslashes, such as Windows paths and regular expression patterns.

Bạn có thể in một chuỗi trong Python không?

Câu lệnh in trong Python 2.7 cung cấp chức năng để in chuỗi và biến.Tuyên bố in lấy thông báo được in trong trích dẫn.Một dấu phẩy được sử dụng để in biến cùng với thông báo.Câu lệnh in đánh giá từng biểu thức được phân tách bằng dấu phẩy.. The print statement takes the message to be printed in quotations. A comma is used to print the variable along with the message. The print statement evaluates each expression which is separated with a comma.

Làm thế nào để bạn in các chuỗi thô trong Python mà không có báo giá?

Cách để in các chuỗi trong Python mà không có trích dẫn..
Sử dụng phương thức sep () để in mà không có trích dẫn trong Python.Mã - ini_list = ['a', 'b', 'c', 'd'] ....
Sử dụng phương thức .format () để in mà không có trích dẫn trong Python.Mã - ini_list = ['a', 'b', 'c', 'd'] ....
Sử dụng phương thức dịch để in mà không có trích dẫn trong Python.Đầu vào -.