Nội dung khóa học
Giới thiệu
4 bài học
Các kiểu dữ liệu và biến
5 bài học
Lệnh điều kiện
2 bài học
Lập trình hàm
3 bài học
Vòng lặp
0 bài học
Cấu trúc dữ liệu trong Python
0 bài học
Các thư viện trong Python
0 bài học
Kiểu xâu / chuỗi trong Python
Khoá học: Lập trình Python cơ bản
- Nội dung
- Ghi chú
- Khoá học
Kiểu xâu / chuỗi kí tự
Kiểu xâu kí tự thường chứa 1 kí tự, 1 từ, hoặc 1 đoạn văn bản, được bao bởi dấu nháy đơn, nháy kép, hoặc cụm 3 dấu nháy đơn / kép khi viết trên nhiều dòng. Dưới đây là một số ví dụ
Một số thao tác cơ bản với xâu
1. Chiều dài xâu
Trong thực tế có nhiều trường hợp chúng ta cần lấy chiều dài của một xâu kí tự. Việc này có thể được thực hiện bởi hàm len()
. Cách sử dụng như sau:
a = "Xin chào"
len_a = len(a)
print(len_a)
Đoạn code trên lấy chiều dài của xâu a
và gán vào biến len_a
. Tiếp đó, biến len_a
được in ra màn hình. Kết quả là 8. Hay cũng chạy đoạn code với trình thực thi code phía dưới.
2. Truy cập một kí tự trong xâu
Để lấy ra một kí tự trong xâu, ta sử dụng ngoặc vuông [vị trí cần lấy]
. Ví dụ, để lấy kí tự đầu tiên của xâu Xin chào
, ta làm như sau:
a = "Xin chào"
print(a[0])
Tại sao vị trí của kí tự đầu là 0
? Đó là vì các kí tự trong xâu được đánh số từ 0 trở đi, các kí tự theo sau kí tự đầu tiên sẽ lần lượt là 1, 2, 3, ...
Bài tập: Hãy thử in ra chữ c (kí tự thứ 5) của xâu Xin chào
.
3. Truy cập một dãy kí tự liền nhau (splicing)
Bạn có thể dùng cú pháp [vị trí bắt đầu:vị trí kết thúc]
để truy cập một dãy kí tự liền nhau. Lưu ý rằng, vị trí kết thúc là vị trí sau kí tự cuối cùng.
Ví dụ, để lấy chữ chào
khỏi xâu Xin chào
, ta làm như sau:
a = "Xin chào"
print(a[4:8])
Trong một số trường hợp, ta có thể không sử dụng vị trí bắt đầu, hoặc vị trí kết thúc ở trong câu lệnh. Ví dụ để lấy 3 kí tự đầu (chữ Xin
):
Cộng hai xâu
Phép ghép nối hai hoặc nhiều xâu được thể hiện bằng dấu +
, ví dụ như sau:
Kết quả thu được: Việt Nam
.
Các phép biến đổi nâng cao
Ngoài các phép toán cơ bản kể trên, Python còn cung cấp một loạt các phép biến đổi nâng cao với xâu kí tự.
1. Uppercase và lowercase
Phép uppercase (.upper()
) sẽ biến đổi các kí tự thành in hoa. Ngược lại, phép lowercase (.lower()
) sẽ biến đổi các kí tự thành in thường.
strip()
2. Xoá khoảng trắng 2 đầu với Đôi lúc ta cần loại bỏ các kí tự trắng không cần thiết ở 2 đầu xâu kí tự. Phương thức strip()
sẽ giúp ta làm việc này
3. Thay thế chuối
Giả sử cần thay thế thế giới
trong cụm Xin chào thế giới!
thành Neural VN
, để tạo thành Xin chào Neural VN
, ta cần dùng phương thức .replace()
.
4. Phân tách chuối
Giả sử ta có các cụm kí tự được ngăn cách bởi một chuỗi kí tự xác định, ví dụ "Tôi-là-Neural VN", ta sử dụng .split(<chuối ngăn cách>)
để tách xâu thành một danh sách các xâu con. Lưu ý: giá trị thu được là kiểu danh sách (list) mà ta sẽ được học trong các bài sắp tới.
5. Các biến đổi khác trong xâu
Python cung cấp nhiều phép biến đổi / phương thức xử lý với xâu mà không thể nói hết trong một bài học. Dưới đây là một danh sách các phương thức hay dùng với xâu để các bạn có thể tham khảo trong quá trình lập trình.
Phương thức | Mô tả |
---|---|
capitalize() | Viết hoa chữ cái đầu |
casefold() | Biến đổi xâu thành viết thường. Tương tự lower() nhưng khác ở một vài trường hợp. Được dùng khi cần so sánh 2 xâu không quan tâm hoa thường. xem thêm |
center() | Căn giữa xâu trên một độ dài cố định, dùng với cú pháp .center(<độ dài>) |
count() | Đếm số lần xuất hiện của một xâu con, dùng với cú pháp .count(<xâu con>) |
encode() | Mã hoá xâu theo một bảng mã biểu diễn, ví dụ UTF-8 |
endswith() | Kiểm tra xem xâu có kết thúc bằng xâu con nào không, dùng với cú pháp .endswith(<xâu con>) |
expandtabs() | Thay thế các kí tự tab bằng khoảng trắng |
find() | Tìm kiếm xâu con trong xâu, trả về vị trí đầu tiên của xâu con trong xâu, nếu không tìm thấy trả về -1 |
format() | Định dạng xâu theo một cú pháp nhất định |
format_map() | Định dạng xâu theo một cú pháp nhất định |
index() | Tìm kiếm xâu con trong xâu, trả về vị trí đầu tiên của xâu con trong xâu, nếu không tìm thấy trả về lỗi |
isalnum() | Trả về True nếu tất cả các kí tự trong xâu là chữ hoặc số, ngược lại trả về False |
isalpha() | Trả về True nếu tất cả các kí tự trong xâu là chữ, ngược lại trả về False |
isdecimal() | Trả về True nếu tất cả các kí tự trong xâu là số thập phân, ngược lại trả về False |
isdigit() | Trả về True nếu tất cả các kí tự trong xâu là chữ số, ngược lại trả về False |
isidentifier() | Trả về True nếu xâu là một định danh hợp lệ, ngược lại trả về False |
islower() | Trả về True nếu tất cả các kí tự trong xâu là chữ thường, ngược lại trả về False |
isnumeric() | Trả về True nếu tất cả các kí tự trong xâu là số, ngược lại trả về False |
isprintable() | Trả về True nếu tất cả các kí tự trong xâu có thể được in ra, ngược lại trả về False |
isspace() | Trả về True nếu tất cả các kí tự trong xâu là khoảng trắng, ngược lại trả về False |
istitle() | Trả về True nếu xâu là một tiêu đề, ngược lại trả về False. Một chuối được xác định là tiêu đề (title) khi toàn bộ các từ được bắt đầu bằng một chữ cái in hoa và theo sau bởi toàn chữ cái in thường |
isupper() | Trả về True nếu tất cả các kí tự trong xâu là chữ hoa, ngược lại trả về False |
join() | Nối các phần tử của một iterable thành một xâu, dùng với cú pháp <xâu>.join(<iterable>) |
ljust() | Căn trái xâu trên một độ dài cố định, dùng với cú pháp .ljust(<độ dài>) |
lower() | Chuyển tất cả các kí tự trong xâu thành chữ thường |
lstrip() | Loại bỏ khoảng trắng ở đầu xâu |
maketrans() | Tạo một bảng mã biểu diễn |
partition() | Tách xâu thành 3 phần, phần đầu là xâu con đầu tiên xuất hiện trong xâu, phần giữa là xâu con đó, phần cuối là phần còn lại của xâu, dùng với cú pháp .partition(<xâu con>) |
replace() | Thay thế xâu con trong xâu bằng xâu khác, dùng với cú pháp .replace(<xâu con>, <xâu khác>) |
rfind() | Tìm kiếm xâu con trong xâu, trả về vị trí cuối cùng của xâu con trong xâu, nếu không tìm thấy trả về -1 |
rindex() | Tìm kiếm xâu con trong xâu, trả về vị trí cuối cùng của xâu con trong xâu, nếu không tìm thấy trả về lỗi |
rjust() | Căn phải xâu trên một độ dài cố định, dùng với cú pháp .rjust(<độ dài>) |
rpartition() | Tách xâu thành 3 phần, phần đầu là xâu con cuối cùng xuất hiện trong xâu, phần giữa là xâu con đó, phần cuối là phần còn lại của xâu, dùng với cú pháp .rpartition(<xâu con>) |
rsplit() | Tách xâu thành các phần bằng cách tách từ phải sang trái, dùng với cú pháp .rsplit(<xâu con>) |
rstrip() | Loại bỏ khoảng trắng ở cuối xâu |
split() | Tách xâu thành các phần bằng cách tách từ trái sang phải, dùng với cú pháp .split(<xâu con>) |
splitlines() | Tách xâu thành các phần bằng cách tách từng dòng, dùng với cú pháp .splitlines(<xâu con>) |
startswith() | Kiểm tra xem xâu có bắt đầu bằng xâu con hay không, dùng với cú pháp .startswith(<xâu con>) |
strip() | Loại bỏ khoảng trắng ở đầu và cuối xâu |
swapcase() | Chuyển đổi chữ hoa thành chữ thường và ngược lại |
title() | Chuyển đổi chữ cái đầu tiên của mỗi từ thành chữ hoa |
translate() | Chuyển đổi các kí tự trong xâu theo bảng mã đã cho. |
upper() | Chuyển tất cả các kí tự trong xâu thành chữ hoa |
zfill() | Điền số 0 vào đầu xâu cho đến khi độ dài của xâu bằng độ dài đã cho, dùng với cú pháp .zfill(<độ dài>) |