Tại sao python thêm dấu gạch chéo ngược vào chuỗi?

Nếu bạn đang nhận lại '\\' từ hệ điều hành. getcwd[], thì tôi nghĩ điều đó có nghĩa là bạn hiện đang ở trong thư mục gốc của Windows. Thành thật mà nói, tôi không biết nhiều về Windows, vì vậy tôi không chắc chắn 100% - tôi thực sự nghĩ rằng bạn cần phải có một tên ổ đĩa trước nó, chẳng hạn như 'c. \\' hoặc tương tự

Bạn không thể thêm 'r' vào một chuỗi hiện có; . Vì vậy, một khi bạn có chuỗi từ os. getcwd[], bạn chỉ có thể sử dụng nó như một chuỗi;

Đoạn mã Python số 1 – Trình viết mã Python nói.

[…] Ghi chú. Trong trường hợp bạn đang thắc mắc “r” làm gì trong dòng quy trình con, thì nó cho Python biết rằng các dấu gạch chéo ngược sau đây không phải là các ký tự thoát và do đó cho phép chúng tôi sử dụng các đường dẫn Windows “bình thường”. Trước khi “r” được giới thiệu, chúng tôi phải sử dụng hai dấu gạch chéo ngược khiến mọi thứ hơi nhầm lẫn. Để được giải thích chi tiết hơn, hãy đọc bài đăng này. […]

Reuven Lerner nói.

Đúng, các dấu gạch chéo về phía trước hoạt động tốt [như tôi đã đề cập ở phần “PS” ở cuối bài]. Nhưng đối với những người chỉ làm việc trên Windows và những người tương đối mới đối với các vấn đề đa nền tảng, các dấu gạch chéo về phía trước có vẻ rất kỳ lạ và không trực quan đối với họ. Tôi thường khuyến khích mọi người sử dụng các chuỗi thô khi họ phải mã hóa cứng các đường dẫn, để tránh các xung đột [gần như không thể tránh khỏi] mà họ sẽ gặp phải

Richard M. Smith nói.

Trên thực tế, phiên bản Windows của Python chấp nhận các dấu gạch chéo thông thường trong đường dẫn tệp. Thí dụ

>>> infile = open[“C. /python27/tools/scripts/suff. py”]
>>> thông tin. đọc[]
“#. /usr/bin/env python\n\n# su\n …

PowerShell cũng chấp nhận dấu gạch chéo thông thường trong đường dẫn tệp. Thí dụ

PSC. \> thư mục c. /python27/công cụ/tập lệnh

Danh mục. C. \python27\tools\scripts

Chế độ LastWriteTime Độ dài Tên
—- ————- —— —-
-a—- 2015-08-21 3. 37 CHIỀU 96 2to3. py
-a—- 2015-08-21 3. 37 giờ tối 4335 phân tích_dxp. py
-a—- 2015-08-21 3. 37 PM 4075 byext. py
-a—- 2015-08-21 3. 37 giờ chiều 1699 byteyears. py
-a—- 2015-08-21 3. 37 PM 4825 kiểm tra thêm. py

OTOH, cmd. exe yêu cầu dấu gạch chéo ngược trong đường dẫn tệp

reuven nói.

Tất cả phụ thuộc vào bối cảnh

Nếu bạn đang viết một chương trình nhanh chóng, một lần, thì điều đó không thành vấn đề

Nhưng vâng, nếu bạn đang viết mã sản xuất cần tồn tại trong nhiều năm và được duy trì bởi những người khác, thì một đường dẫn mã hóa cứng gần như chắc chắn là một ý tưởng tồi và sử dụng thứ gì đó như os. đường dẫn. tham gia gần như chắc chắn tốt hơn. Hoặc thậm chí tốt hơn thế, sử dụng pathlib, giải quyết nhiều vấn đề hơn nữa

Như đã nêu trước đó, biểu thức chính quy sử dụng ký tự gạch chéo ngược ["\"] để biểu thị các dạng đặc biệt hoặc để cho phép sử dụng các ký tự đặc biệt mà không cần gọi ý nghĩa đặc biệt của chúng. Điều này mâu thuẫn với việc Python sử dụng cùng một ký tự cho cùng một mục đích trong chuỗi ký tự

Giả sử bạn muốn viết RE khớp với chuỗi "\ section", có thể tìm thấy trong tệp LATEX. Để tìm ra những gì cần viết trong mã chương trình, hãy bắt đầu với chuỗi mong muốn được khớp. Tiếp theo, bạn phải thoát khỏi mọi dấu gạch chéo ngược và các siêu ký tự khác bằng cách đặt trước chúng bằng dấu gạch chéo ngược, dẫn đến chuỗi "\\section". Chuỗi kết quả phải được chuyển tới re. compile[] phải là \\section. Tuy nhiên, để thể hiện điều này dưới dạng chuỗi ký tự Python, cả hai dấu gạch chéo ngược phải được thoát lại

CharactersStage\sectionChuỗi văn bản được khớp\\section Dấu gạch chéo ngược thoát cho re. biên dịch_______23_______ Dấu gạch chéo ngược đã thoát cho một chuỗi ký tự

Nói tóm lại, để khớp với dấu gạch chéo ngược theo nghĩa đen, người ta phải viết '\\\\' dưới dạng chuỗi RE, vì biểu thức chính quy phải là "\\" và mỗi dấu gạch chéo ngược phải được biểu thị là "\\" bên trong Python thông thường . Trong các RE có dấu gạch chéo ngược lặp đi lặp lại, điều này dẫn đến nhiều dấu gạch chéo ngược lặp đi lặp lại khiến chuỗi kết quả trở nên khó hiểu

Giải pháp là sử dụng ký hiệu chuỗi thô của Python cho các biểu thức chính quy; . Các biểu thức chính quy thông thường sẽ được thể hiện bằng mã Python bằng cách sử dụng ký hiệu chuỗi thô này

Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về ký tự dấu gạch chéo ngược trong Python như một phần của ký tự thứ tự đặc biệt hoặc để thoát ký tự trong chuỗi

Giới thiệu về dấu gạch chéo ngược Python

Trong Python, dấu gạch chéo ngược[

Hello, World

1] là một ký tự đặc biệt. Nếu bạn sử dụng dấu gạch chéo ngược trước một ký tự khác, nó sẽ thay đổi ý nghĩa của ký tự đó

Ví dụ,

Hello, World

2 là một ký tự chữ. Nhưng nếu bạn sử dụng ký tự gạch chéo ngược ở phía trước chữ cái

Hello, World

2, nó sẽ trở thành ký tự tab [

Hello, World

4]

Nói chung, dấu gạch chéo ngược có hai mục đích chính

Đầu tiên, ký tự gạch chéo ngược là một phần của chuỗi ký tự đặc biệt, chẳng hạn như ký tự tab

Hello, World

4 hoặc ký tự dòng mới

Hello, World

6

Ví dụ sau in một chuỗi có ký tự xuống dòng

print['Hello,\n World']

Code language: PHP [php]

đầu ra

Hello, World

\n là một ký tự đơn, không phải hai ký tự. Ví dụ

________số 8_______

Thứ hai, dấu gạch chéo ngược [

Hello, World

1] thoát khỏi các ký tự đặc biệt khác. Ví dụ: nếu bạn có một chuỗi có một trích dẫn bên trong một chuỗi trích dẫn đơn như chuỗi sau, bạn cần sử dụng dấu gạch chéo ngược để thoát khỏi ký tự trích dẫn đơn

s = '"Python\'s awesome" She said' print[s]

Code language: PHP [php]

đầu ra

"Python's awesome" She said

Code language: JavaScript [javascript]

Dấu gạch chéo ngược trong chuỗi f

PEP-498 chỉ định rằng chuỗi f không thể chứa ký tự dấu gạch chéo ngược như một phần của biểu thức bên trong dấu ngoặc nhọn

Hello, World

8

Ví dụ sau sẽ dẫn đến lỗi

colors = ['red','green','blue'] s = f'The RGB colors are:\n {'\n'.join[colors]}' print[s]

Code language: PHP [php]

Lỗi

SyntaxError: f-string expression part cannot include a backslash

Code language: JavaScript [javascript]

Để khắc phục điều này, bạn cần nối các chuỗi trong danh sách

Hello, World

9 trước khi đặt chúng vào dấu ngoặc nhọn

colors = ['red','green','blue'] rgb = '\n'.join[colors] s = f"The RGB colors are:\n{rgb}" print[s]

Code language: PHP [php]

đầu ra

The RGB colors are: red green blue

Dấu gạch chéo ngược trong chuỗi thô

Các chuỗi thô coi ký tự dấu gạch chéo ngược [_______0_______1] là ký tự chữ. Ví dụ sau coi ký tự gạch chéo ngược

Hello, World

1 là ký tự chữ, không phải ký tự đặc biệt

Chủ Đề