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