Professional Documents
Culture Documents
1
KIỂU CHUỖI VÀ CÁC
PHÉP TOÁN
Kiểu chuỗi: Định nghĩa
3
Kiểu chuỗi: Định nghĩa
❖Các kí tự trong chuỗi là các kí tự thuộc bảng mã Unicode
hoặc bảng mã ASCII.
❖Kí tự trong chuỗi được đánh chỉ số thứ tự bắt đầu bằng chỉ
số 0, 1, … (theo hướng từ trái sang phải) và bắt đầu từ -1,
-2, … (theo hướng từ phải sang trái).
❖Số kí tự trong chuỗi được gọi là độ dài của chuỗi đó.
T u h o c P y t h o n
Chỉ 0 1 2 3 4 5 6 7 8 9 10 11 12
số
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
4
Kiểu chuỗi
❖Ví dụ 1:
❖Kết quả
5
Kiểu chuỗi
❖Ví dụ 2:
❖Kết quả:
6
Kiểu chuỗi: Thao tác
7
Kiểu chuỗi: Thao tác
b. Truy cập đến từng ký tự trong chuỗi
<biến chuỗi> [chỉ số]
Như vậy, nếu đặt n là độ dài của chuỗi, thì các chỉ số của kí tự
được đánh từ 0, 1, …, n – 1 (theo hướng từ trái sang phải) và
đánh chỉ số từ -1, -2, …, – n (theo hướng từ phải sang trái)
Ví dụ:
8
Kiểu chuỗi: Thao tác
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
Ghép chuỗi:
❖ Python cho phép tạo chuỗi mới bằng cách ghép các chuỗi
lại với nhau:
9
Thao tác với chuỗi
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
❑ Lặp chuỗi
❖Để ghép nhiều lần một chuỗi lại với nhau, ngoài cách
ghép trực tiếp, Python còn cho phép thực hiện ngắn gọn
hơn:
<biến chuỗi>*<số lần ghép>
<số lần ghép>*<biến chuỗi>
10
Thao tác với chuỗi
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
Ví dụ:
11
Thao tác với chuỗi
d. So sánh chuỗi
❖So sánh chuỗi được thực hiện bằng cách lần lượt so sánh
các kí tự từ trái sang phải. Nếu gặp một cặp kí tự không
bằng nhau thì chuỗi nào chứa kí tự lớn hơn sẽ là chuỗi lớn
hơn. Nếu một chuỗi là phần đầu của của chuỗi kia thì
chuỗi đó nhỏ hơn.
❖Ví dụ: Kết quả:
12
Thao tác với chuỗi
e. Lấy chuỗi con
❖Để lấy chuỗi con gồm các kí tự liên tiếp từ chỉ số a
đến chỉ số b – 1 (a ≤ b) ta thực hiện:
Ví dụ:
13
Thao tác với chuỗi
Chú ý:
Lấy a kí tự đầu của chuỗi
<biến chuỗi>[: a]
tức là cũng bằng câu lệnh:
<biến chuỗi>[0: a]
Lấy các kí tự từ chỉ số a đến cuối chuỗi
<biến chuỗi>[a:]
Như vậy
<biến chuỗi>[: a] + <biến chuỗi>[a:] == <biến chuỗi>
Kết quả:
15
Thao tác với chuỗi
❖Dạng tham số
<biến chuỗi>[a:b:c]
<biến chuỗi>[: : - 1]
16
Thao tác với chuỗi
f. Đảo ngược thứ tự chuỗi
Để đảo ngược thứ tự của một chuỗi, ta thực hiện:
<biến chuỗi>[: : - 1]
17
Thao tác với chuỗi
Ví dụ:
18
Bài tập 1. Tách kí tự số và kí tự chữ cái
19
Bài tập 1. Tách kí tự số và kí tự chữ cái
20
Bài tập 2. Chuỗi đối xứng
Một chuỗi được gọi là chuỗi đối xứng nếu đọc chúng từ trái
sang phải cũng giống như đọc từ phải sang trái. Ví dụ:
“madam”, “1221” là các chuỗi đối xứng, chuỗi “12334” không
phải là một chuỗi đối xứng. Viết chương trình nhập vào một
chuỗi và kiểm tra xem có phải là chuỗi đối xứng hay không?
21
Bài tập 2. Minh họa 1
22
Bài tập 2. Minh họa 2
23
Bài tập 3. Nén chuỗi
Cho một chuỗi s gồm các kí tự chữ cái La-tinh thường. Ta thực
hiện nén chuỗi theo quy tắc sau: với một dãy các kí tự giống
nhau liên tiếp, ta sẽ thay thế dãy này bằng:
24
Bài tập 3. Minh họa Nén chuỗi
25
Bài tập áp dụng: Giải nén chuỗi
26
Một số thao tác với chuỗi
1.Tách chuỗi
❖ Phương thức: <biến chuỗi>. split( )
27
Một số thao tác với chuỗi
1. Tách chuỗi
❖ Một số dạng có tham số
Ví dụ:
29
Một số thao tác với chuỗi
Ví dụ:
30
Một số thao tác với chuỗi
31
Một số thao tác với chuỗi
33
Một số thao tác với chuỗi
Chú ý:
Sau khi thực hiện các phương thức: str1.upper(),
str1.lower(), str1.capitalize(), str1.title(),
str1.swapcase() thì chuỗi str1 vẫn không thay đổi.
34
Một số thao tác với chuỗi
3. Phép toán in
Phép toán: str1 in str2 trả về True nếu str1 là chuỗi
con của str2; ngược lại, phép toán trả về giá trị
False.
35
Một số thao tác với chuỗi
4. Phương thức đếm số lần xuất hiện
Phương thức <biến chuỗi>.count(str1)
❖Trả về số lần xuất hiện của chuỗi str1 trong <biến chuỗi>.
36
Một số thao tác với chuỗi
37
Một số thao tác với chuỗi
38
Một số thao tác với chuỗi
39
Một số thao tác với chuỗi
6. Phương thức thay thế
Phương thức
Trả về chuỗi được tạo thành bằng cách thay thế tất cả các
chuỗi con str_old bằng chuỗi str_new trong <biến chuỗi>.
Trả về một chuỗi được tạo thành bằng cách thay thế tất cả
các chuỗi con str_old bằng chuỗi str_new nhưng số lần thay
thế nhiều nhất là num_max. Việc thay thế sẽ thực hiện lần
lượt đối với các chuỗi con từ trái sang phải.
40
Một số thao tác với chuỗi
❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng (white space) ở bên trái <biến chuỗi>.
❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng ở bên phải <biến chuỗi>.
Phương thức <biến chuỗi>.strip()
❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng ở cả bên trái và bên phải <biến chuỗi>.
41
Một số thao tác với chuỗi
7. Phương thức xóa các kí tự ở bên trái, bên phải chuỗi
❖Tham số với phương thức lstrip(), rstrip(), strip().
Phương thức <biến chuỗi>.lstrip([Các kí tự])
❖Trả về chuỗi được tạo thành bằng cách xóa các kí tự thuộc
tập [Các kí tự] nằm liền kề bên trái <biến chuỗi>.
44
Một số thao tác với chuỗi
❖Phương thức
<biến chuỗi>.zfill(width)
❖Trả về chuỗi có độ dài width bằng cách thêm vào các kí tự
chữ số 0 vào bên trái <biến chuỗi>
45
Một số thao tác với chuỗi
9. Một số phương thức is_
Phương thức <biến chuỗi>.isdigit()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
số, ngược lại trả về giá trị False.
Phương thức <biến chuỗi>.isspace()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kít ự trắng,
ngược lại trả về giá tị False.
Phương thức <biến chuỗi>.islower()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
thường, ngược lại trả về giá trị False.
Phương thức <biến chuỗi>.isupper()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
hoa, ngược lại trả về giá trị False. 46
Một số thao tác với chuỗi
9. Một phương thức is_
Phương thức <biến chuỗi>.isalpha()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự thuộc
‘a’. ‘b’, …, ‘z’; ‘A’, ‘B’, …, ‘Z’, ngược lại trả về giá trị False.
❖Trả về giá trị True nếu <biến chuỗi> có các từ đều chữ cái
đầu là chữ hoa, ngược lại trả về giá trị False.
47
Một số thao tác với chuỗi
10. Hàm max, min trên chuỗi
Hàm max(<biến chuỗi>)
❖Python cung cấp một hàm rất mạnh cho phép tính giá trị của
các biểu thức toán học đúng. Đó là hàm eval().
❖Hàm eval(str1) trả về giá trị của biểu thức toán học đúng
được viết dưới dạng chuỗi str1.
48
Bài tập 1: Tách từ trong chuỗi
49
Bài tập 1: Tách từ trong chuỗi
50
Bài tập 1: Tách từ trong chuỗi
51
Bài tập 2: Tính tổng các chữ số
Cho chuỗi s gồm các chữ số và chữ cái Latinh.
Tính tổng các chữ số có trong chuỗi
52
Bài tập 2: Tính tổng các chữ số
53
Bài tập 3: Chuỗi hoán vị
54
Bài tập 3: Chuỗi hoán vị
55
Định dạng chuỗi
56
Định dạng chuỗi: Ví dụ
57
Định dạng chuỗi
59
Các phương thức của chuỗi
63
Tóm tắt nội dung
64
Bài tập về xử lý chuỗi
1) Nhập một chuỗi từ bàn phím, kiểm tra xem nó có tận cùng bởi 3
dấu chấm than hay không (!!!), nếu không thì hãy thêm dấu
chấm than vào cuối để chuỗi có tận cùng là 3 dấu chấm than.
2) Nhập dãy số từ bàn phím (các số được gõ trên cùng một dòng,
cách nhau bởi dấu cách hoặc tab), in ra dãy số vừa nhập.
3) Nhập một tên người từ bàn phím, hãy tách phần họ và tên riêng
của người đó và in chúng ra màn hình (giả thiết họ và tên riêng
chỉ gồm một âm).
4) Nhập một chuỗi từ bàn phím, hãy loại bỏ tất cả các chữ số khỏi
chuỗi và in lại nội dung chuỗi mới ra màn hình.
65
Bài tập về xử lý chuỗi
5) Nhập một dãy các từ từ bàn phím, hãy in ra từ dài nhất trong dãy
vừa nhập, in ra mọi từ có cùng độ dài nhất.
6) Nhập một dãy các từ từ bàn phím, thống kê xem có những chữ cái
nào xuất hiện trong dãy và mỗi chữ xuất hiện bao nhiêu lần?
7) Nhập chuỗi S gồm toàn chữ số và số nguyên N, chỉ ra cách xóa đúng
N kí tự khỏi S để được số có giá trị lớn nhất.
8) Nhập chuỗi S, hãy thay thế tất cả các chữ số trong S bằng kí tự hỏi
chấm (?), sau đó in lại S ra màn hình
9) Nhập chuỗi S, kiểm tra xem chuỗi S có là dạng đối xứng hay không?
66