Hướng dẫn python raw string format

  1. I know that you can create a multi-line string a few ways:

Triple Quotes

Nội dung chính

  • Multiline Strings
  • 1. Tạo một string
  • 2. Truy cập các ký tự trong Python
  • 3. Xóa / Cập nhật từ một String
  • 3.1 Cập nhật ký tự:
  • 3.2 Cập nhật toàn bộ string:
  • 3.3 Xóa một ký tự:
  • 3.4 Xóa toàn bộ string:
  • 4. Trình tự thoát trong Python
  • 5. Định dạng của string
  • 6. Hằng số string
  • 7. Hàm không dùng nữa

'''
This is a 
multi-line
string.
'''

Concatenating

['this is '
'a string']

Escaping

'This is'\
'a string'
  1. I also know that prefixing the string with r will make it a raw string, useful for filepaths.

    r'C:\Path\To\File'
    

However, I have a long filepath that both spans multiple lines and needs to be a raw string. How do I do this?

This works:

In [1]: [r'a\b'
   ...: '\c\d']
Out[1]: 'a\\b\\c\\d'

But for some reason, this doesn't:

In [4]:  [r'on\e'
   ...: '\tw\o']
Out[4]: 'on\\e\tw\\o'

Why does the "t" only have one backslash?

smci

30.5k18 gold badges110 silver badges145 bronze badges

asked Sep 1, 2017 at 15:23

3

You'd need a r prefix on each string literal

>>> [r'on\e'
     r'\tw\o']
'on\\e\\tw\\o'

Otherwise the first portion is interpreted as a raw string literal, but the next line of string is not, so the '\t' is interpreted as a tab character.

answered Sep 1, 2017 at 15:27

Cory KramerCory Kramer

109k15 gold badges156 silver badges206 bronze badges

2

I think you might also need to make the second line a raw string as well by prefixing it with the r as you did in r'on\e'

answered Sep 1, 2017 at 15:27

ddeamaralddeamaral

1,3231 gold badge23 silver badges42 bronze badges

Multiline Strings

You can assign a multiline string to a variable by using three quotes:

Nội dung chính

  • Multiline Strings
  • 1. Tạo một string
  • 2. Truy cập các ký tự trong Python
  • 3. Xóa / Cập nhật từ một String
  • 3.1 Cập nhật ký tự:
  • 3.2 Cập nhật toàn bộ string:
  • 3.3 Xóa một ký tự:
  • 3.4 Xóa toàn bộ string:
  • 4. Trình tự thoát trong Python
  • 5. Định dạng của string
  • 6. Hằng số string
  • 7. Hàm không dùng nữa

Nội dung chính

  • Multiline Strings
  • 1. Tạo một string
  • 2. Truy cập các ký tự trong Python
  • 3. Xóa / Cập nhật từ một String
  • 3.1 Cập nhật ký tự:
  • 3.2 Cập nhật toàn bộ string:
  • 3.3 Xóa một ký tự:
  • 3.4 Xóa toàn bộ string:
  • 4. Trình tự thoát trong Python
  • 5. Định dạng của string
  • 6. Hằng số string
  • 7. Hàm không dùng nữa

Example

You can use three double quotes:

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print[a]

Try it Yourself »

Or three single quotes:

Example

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print[a]

Try it Yourself »

Note: in the result, the line breaks are inserted at the same position as in the code.

Trong Python, String là các mảng byte đại diện cho các ký tự Unicode. Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một string có độ dài là 1. Dấu ngoặc vuông có thể được sử dụng để truy cập các phần tử của string.

  • 1. Tạo một string
  • 2. Truy cập các ký tự trong Python
  • 2.1 Cắt string
  • 3. Xóa / Cập nhật từ một String
    • 3.1 Cập nhật ký tự:
    • 3.2 Cập nhật toàn bộ string:
    • 3.3 Xóa một ký tự:
    • 3.4 Xóa toàn bộ string:
  • 4. Trình tự thoát trong Python
  • 5. Định dạng của string
  • 6. Hằng số string
  • 7. Hàm không dùng nữa

1. Tạo một string

String trong Python có thể được tạo bằng cách sử dụng dấu ngoặc đơn hoặc dấu ngoặc kép hoặc thậm chí ba dấu ngoặc đơn.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python Program for 
# Creation of String 
  
# Creating a String  
# with single Quotes 
String1 = 'Welcome to the Cafedev World'
print["String with the use of Single Quotes: "] 
print[String1] 
  
# Creating a String 
# with double Quotes 
String1 = "I'm a Cafedev"
print["\nString with the use of Double Quotes: "] 
print[String1] 
  
# Creating a String 
# with triple Quotes 
String1 = '''I'm a Cafedev and I live in a world of "Cafedev"'''
print["\nString with the use of Triple Quotes: "] 
print[String1] 
  
# Creating String with triple 
# Quotes allows multiple lines 
String1 = '''Cafedev 
            For 
            Life'''
print["\nCreating a multiline String: "] 
print[String1] 

Kết quả:

String with the use of Single Quotes: 
Welcome to the Cafedev World

String with the use of Double Quotes: 
I'm a Cafedev

String with the use of Triple Quotes: 
I'm a Cafedev and I live in a world of "Cafedev"

Creating a multiline String: 
Cafedev
            For
            Life

2. Truy cập các ký tự trong Python

Trong Python, các ký tự riêng lẻ của String có thể được truy cập bằng cách sử dụng phương thức chỉ mục. Phương thức chỉ mục cho phép các tham chiếu địa chỉ âm để truy cập các ký tự ở hàng sau của String, ví dụ -1 để chỉ ký tự cuối cùng, -2 để chỉ ký tự cuối cùng thứ hai, v.v.
Việc truy cập một chỉ mục ngoài phạm vi sẽ gây ra IndexError. Chỉ kiểu Integer [nguyên] mới được phép truyền dưới dạng chỉ mục, kiểu float [thực] hoặc các kiểu khác sẽ gây ra TypeError .
[Hình ảnh]

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python Program to Access 
# characters of String 
  
String1 = "Cafedev.vn"
print["Initial String: "] 
print[String1] 
  
# Printing First character 
print["\nFirst character of String is: "] 
print[String1[0]] 
  
# Printing Last character 
print["\nLast character of String is: "] 
print[String1[-1]] 

Kết quả:

Initial String: 
Cafedev.vn

First character of String is: 
C

Last character of String is: 
n

Để truy cập vào một loạt các ký tự trong String, phương pháp cắt được sử dụng. Cắt trong String được thực hiện bằng cách sử dụng toán tử Cắt [dấu hai chấm].

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python Program to 
# demonstrate String slicing 
  
# Creating a String 
String1 = "Cafedev.vnCafedev"
print["Initial String: "]  
print[String1] 
  
# Printing 3rd to 12th character 
print["\nSlicing characters from 3-12: "] 
print[String1[3:12]] 
  
# Printing characters between  
# 3rd and 2nd last character 
print["\nSlicing characters between " +
    "3rd and 2nd last character: "] 
print[String1[3:-2]] 

Kết quả:

Initial String: 
Cafedev.vnCafedev

Slicing characters from 3-12: 
edev.vnCafed

Slicing characters between 3rd and 2nd last character: 
dev.vnC

3. Xóa / Cập nhật từ một String

Trong Python, không được phép cập nhật hoặc xóa các ký tự khỏi String. Điều này sẽ gây ra lỗi vì việc gán mục hoặc xóa mục khỏi String không được hỗ trợ mặc dù có thể xóa toàn bộ String với việc sử dụng từ khóa del được tích hợp. Điều này là do String không thay đổi, do đó các thành phần của String không thể thay đổi sau khi được gán. Chỉ các string mới có thể được gán lại cho cùng một tên.

3.1 Cập nhật ký tự:


# Python Program to Update 
# character of a String 
  
String1 = "Hello, I'm a Geek"
print["Initial String: "] 
print[String1] 
  
# Updating a character  
# of the String 
String1[2] = 'p'
print["\nUpdating character at 2nd Index: "] 
print[String1] 

Lỗi:

Traceback [most recent call last]:
File “/home/360bb1830c83a918fc78aa8979195653.py”, line 10, in
String1[2] = ‘p’
TypeError: ‘str’ object does not support item assignment

3.2 Cập nhật toàn bộ string:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python Program to Update 
# entire String 
  
String1 = "Hello, I'm a Cafedev"
print["Initial String: "] 
print[String1] 
  
# Updating a String 
String1 = "Welcome to the Cafedev World"
print["\nUpdated String: "] 
print[String1] 

Kết quả:

Initial String: 
Hello, I'm a Cafedev

Updated String: 
Welcome to the Cafedev World

3.3 Xóa một ký tự:


# Python Program to Delete 
# characters from a String 
  
String1 = "Hello, I'm a Cafedev"
print["Initial String: "] 
print[String1] 
  
# Deleting a character  
# of the String 
del String1[2]  
print["\nDeleting character at 2nd Index: "] 
print[String1] 

Lỗi:

Traceback [most recent call last]:
File “/home/499e96a61e19944e7e45b7a6e1276742.py”, line 10, in
del String1[2]
TypeError: ‘str’ object doesn’t support item deletion

3.4 Xóa toàn bộ string:

Có thể xóa toàn bộ string với việc sử dụng từ khóa del. Hơn nữa, nếu chúng ta cố gắng in string, điều này sẽ gây ra lỗi vì String bị xóa và không có sẵn để in.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python Program to Delete 
# entire String 
  
String1 = "Hello, I'm a Cafedev"
print["Initial String: "] 
print[String1] 
  
# Deleting a String 
# with the use of del 
del String1  
print["\nDeleting entire String: "] 
print[String1] 

Lỗi:

Traceback [most recent call last]:
File “/home/e4b8f2170f140da99d2fe57d9d8c6a94.py”, line 12, in
print[String1]
NameError: name ‘String1’ is not defined

4. Trình tự thoát trong Python

Trong khi việc in String giữa dấu ngoặc đơn và dấu ngoặc kép gây ra lỗi SyntaxError vì String đã có sẵn Dấu ngoặc đơn và Dấu ngoặc kép và do đó không thể được in bằng cách sử dụng một trong hai. Vì vậy, để in một String như vậy, ta có thể sử dụng 3 dấu ngoặc hoặc các Escape Sequence.
Escape Sequence bắt đầu bằng dấu gạch chéo ngược và có thể được thông dịch một cách khác nhau. Nếu dấu ngoặc đơn được sử dụng để thể hiện một string, thì tất cả các dấu ngoặc đơn có trong string phải được thoát và tương tự được thực hiện cho Dấu ngoặc kép.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python Program for 
# Escape Sequencing  
# of String 
  
# Initial String 
String1 = '''I'm a "Cafedev"'''
print["Initial String with use of Triple Quotes: "] 
print[String1] 
  
# Escaping Single Quote  
String1 = 'I\'m a "Cafedev"'
print["\nEscaping Single Quote: "] 
print[String1] 
  
# Escaping Doule Quotes 
String1 = "I'm a \"Cafedev\""
print["\nEscaping Double Quotes: "] 
print[String1] 
  
# Printing Paths with the  
# use of Escape Sequences 
String1 = "C:\\Python\\Cafedev\\"
print["\nEscaping Backslashes: "] 
print[String1] 

Kết quả:

Initial String with use of Triple Quotes: 
I'm a "Cafedev"

Escaping Single Quote: 
I'm a "Cafedev"

Escaping Double Quotes: 
I'm a "Cafedev"

Escaping Backslashes: 
C:\Python\Cafedev\

Để bỏ qua các escape sequence trong String, r hoặc R được sử dụng, điều này ngụ ý rằng string là một string thô và các Escape sequence bên trong nó sẽ bị bỏ qua.



# Printing Cafedev in HEX 
String1 = "This is \x47\x65\x65\x6b\x73 in \x48\x45\x58"
print["\nPrinting in HEX with the use of Escape Sequences: "] 
print[String1] 
  
# Using raw String to  
# ignore Escape Sequences 
String1 = r"This is \x47\x65\x65\x6b\x73 in \x48\x45\x58"
print["\nPrinting Raw String in HEX Format: "] 
print[String1] 

Kết quả:

Printing in HEX with the use of Escape Sequences: 
This is Cafedev in HEX

Printing Raw String in HEX Format: 
This is \x47\x65\x65\x6b\x73 in \x48\x45\x58

5. Định dạng của string

Các string trong Python có thể được định dạng bằng cách sử dụng phương thức format[], một công cụ rất linh hoạt và mạnh mẽ để định dạng các String. Phương thức định dạng trong String chứa dấu ngoặc nhọn {} dưới dạng giữ chỗ có thể giữ các đối số theo vị trí hoặc từ khóa để chỉ định thứ tự.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: //www.facebook.com/cafedevn
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python Program for 
# Formatting of Strings 
  
# Default order 
String1 = "{} {} {}".format['Cafedev', 'For', 'Life'] 
print["Print String in default order: "] 
print[String1] 
  
# Positional Formatting 
String1 = "{1} {0} {2}".format['Cafedev', 'For', 'Life'] 
print["\nPrint String in Positional order: "] 
print[String1] 
  
# Keyword Formatting 
String1 = "{l} {f} {g}".format[g = 'Cafedev', f = 'For', l = 'Life'] 
print["\nPrint String in order of Keywords: "] 
print[String1] 

Kết quả:

Print String in default order: 
Cafedev For Life

Print String in Positional order: 
For Cafedev Life

Print String in order of Keywords: 
Life For Cafedev

Các số nguyên như nhị phân, thập lục phân, v.v. và số thực có thể được làm tròn hoặc hiển thị ở dạng số mũ với việc sử dụng các chỉ định định dạng.


# Formatting of Integers 
String1 = "{0:b}".format[16] 
print["\nBinary representation of 16 is "] 
print[String1] 
  
# Formatting of Floats 
String1 = "{0:e}".format[165.6458] 
print["\nExponent representation of 165.6458 is "] 
print[String1] 
  
# Rounding off Integers 
String1 = "{0:.2f}".format[1/6] 
print["\none-sixth is : "] 
print[String1] 

Kết quả:

Binary representation of 16 is 
10000

Exponent representation of 165.6458 is 
1.656458e+02

one-sixth is : 
0.17

Một string có thể là left[] hoặc center[^] được chứng minh bằng việc sử dụng các chỉ định định dạng, được phân tách bằng dấu hai chấm[:].


# String alignment 
String1 = "|{:10}|".format['Cafedev','for','Cafedev'] 
print["\nLeft, center and right alignment with Formatting: "] 
print[String1] 
  
# To demonstrate aligning of spaces  
String1 = "\n{0:^16} was founded in {1:

Chủ Đề