Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Các thao tác chuỗi trong Python


Trong Python, có một thư viện chuẩn tên là string. Trong module string, có nhiều hằng số, phương thức và lớp liên quan đến chuỗi.

Để sử dụng các module này, ta cần import module string vào mã nguồn.

import string

Một số hằng số chuỗi và giá trị tương ứng như sau:

STT Hằng số chuỗi & Giá trị
1 string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
2 string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
3 string.ascii_letters
Ghép nối của ascii_lowercase và ascii_uppercase: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
4 string.digits
'0123456789'
5 string.hexdigits
'0123456789abcdefABCDEF'
6 string.octdigits
'01234567'
7 string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
8 string.printable
Tất cả ký tự ASCII có thể in. Là tập hợp của ascii_letters, punctuation, digits và whitespace.
9 string.whitespace
'\t\n\r\x0b\x0c'

Ví dụ mã

import string
print(string.hexdigits)
print(string.ascii_uppercase)
print(string.printable)

Kết quả

0123456789abcdefABCDEF
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Định dạng chuỗi

Lớp chuỗi built-in trong Python hỗ trợ thay thế biến phức tạp và định dạng giá trị bằng phương thức format().

Cú pháp cơ bản để định dạng chuỗi:

'{} {}'.format(a, b)

Giá trị của a và b sẽ được đặt vào các vị trí được bao quanh bởi {}. Ta cũng có thể cung cấp tham số vị trí trong ngoặc nhọn, hoặc sử dụng tên biến.

Sử dụng tùy chọn định dạng này, ta cũng có thể thiết lập khoảng đệm (padding) cho văn bản. Cú pháp thêm padding:

'{: (ký_tự) > (độ_rộng)}'.format('chuỗi')

Chuỗi 'chuỗi' sẽ được đệm bằng ký_tự cụ thể, với độ_rộng giá trị bên phải sử dụng ký hiệu >. Ta có thể dùng < để đệm bên trái, ^ để căn giữa.

Phương thức format() cũng có thể cắt ngắn chuỗi theo độ dài cho trước. Cú pháp:

'{:.độ_dài}'.format('chuỗi')

Chuỗi sẽ bị cắt ngắn đến độ dài cho trước.

Ví dụ mã

print('The Name is {} and Roll {}'.format('Jhon', 40))
print('The values are {2}, {1}, {3}, {0}'.format(50, 70, 30, 15))  # Sử dụng tham số vị trí
print('Value 1: {val1}, value 2: {val2}'.format(val2=20, val1=10))  # Sử dụng tên biến
# Padding chuỗi
print('{: >{width}}'.format('Hello', width=20))
print('{:_^{width}}'.format('Hello', width=20))  # Căn giữa và đệm bằng ký tự '_'
# Cắt chuỗi theo độ dài cho trước
print('{:.5}'.format('Python Programming'))  # Chỉ lấy 5 ký tự đầu

Kết quả

The Name is Jhon and Roll 40
The values are 30, 70, 15, 50
Value 1: 10, value 2: 20
Hello                   
_______Hello________
Pytho

Template chuỗi

Template chuỗi được dùng để thay thế chuỗi theo cách đơn giản hơn. Template hỗ trợ thay thế bằng ký tự $. Khi tìm thấy $identifier, nó sẽ thay thế bằng giá trị mới của identifier đó.

Cú pháp cơ bản để sử dụng template:

myStr = string.Template("$a will be replaced")
myStr.substitute(a='XYZ')

Giá trị của a trong chuỗi sẽ được thay thế bằng 'XYZ'. Ta có thể sử dụng dictionary để thực hiện thao tác này.

Ví dụ mã

my_template = string.Template("The value of A is $X and Value of B is $Y")
my_str = my_template.substitute(X='Python', Y='Programming')
print(my_str)
my_dict = {'key1': 144, 'key2': 169}
my_template2 = string.Template("The first one $key1 and second one $key2")
my_str2 = my_template2.substitute(my_dict)
print(my_str2)

Kết quả

The value of A is Python and Value of B is Programming
The first one 144 and second one 169