You are on page 1of 42

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN


----------

BÁO CÁO
KỸ THUẬT ĐỒ HOẠ

Nhóm sinh viên thực hiện: Nhóm 03

Hà Nội 2020
Sinh viên thực hiện:

Nguyễn Bá Nhật
B17DCCN479

Đoàn Xuân Phi


B17DCCN484

Quách Đình Quang


B17DCCN517

Đỗ Minh Quân
B17DCCN497

Nguyễn Văn Quyền


B17DCCN524

Hoàng Thị Minh Tâm


B17DCCN551

Mục lục
PHẦN CƠ BẢN................................................................................................................................3
Bài 1: Tổng quan về Python.........................................................................................................3
Bài 2: Khai báo biến trong python...............................................................................................9

1
Bài 3: Hàm print trong Python...................................................................................................11
Bài 4: Chuỗi trong Python.........................................................................................................13
Bài 5: Số trong Python:..............................................................................................................17
Bài 18: List trong Python...........................................................................................................19
Bài 19: Xử lý số học với module math trong Python................................................................25
PHẦN PYTHON NÂNG CAO........................................................................................................33
Bài 9: Regular Expression trong Python (P2)............................................................................33

2
PHẦN CƠ BẢN

Bài 1: Tổng quan về Python


1. Python là gì?
Python là một ngôn ngữ lập trình kịch bản (scripting language) do Guido van
Rossum tạo ra năm 1990. Đến nay thì cộng đồng người sử dụng ngôn ngữ này rất
đông, nếu so sánh từ bảng xếp hạng các ngôn ngữ năm 2016 thì Python đứng tứ 3 trong
top 10 ngôn ngữ phổ biến nhất.

Và Python luôn được biết đến với các đặc điểm sau đây:
✔ Cú pháp rất tường minh, dễ đọc.
✔ Các khả năng tự xét mạnh mẽ.
✔ Hướng đối tượng trực giác.
✔ Cách thể hiện tự nhiên mã thủ tục.
✔ Hoàn toàn mô-đun hóa, hỗ trợ các gói theo cấp bậc.
✔ Xử lý lỗi dựa theo ngoại lệ.
✔ Kiểu dữ liệu động ở mức rất cao.
✔ Các thư viện chuẩn và các mô-đun ngoài bao quát hầu như mọi việc.
✔ Phần mở rộng và mô-đun dễ dàng viết trong C, C++.
✔ Có thể nhúng trong ứng dụng như một giao diện kịch bản (scripting interface).
✔ Python mạnh mẽ và thực hiện rất nhanh.
2. Cài đặt Python

3
· Tải Python: truy cập vào đường dẫn: https://www.python.org/downloads/
và ấn vào nút như bình bên dưới

· Sau khi chuyển đổi trang, kéo xuống dưới cùng và ấn vào đường link như
hình dưới:

4
· Sau khi download xong, chỉ cần mở file vừa tải về lên

5
· Chọn Customize installation và đảm bảo đã tích vào 2 ô bên dưới

· Tiếp theo đảm bảo tất cả các ô đã được tích như hình bên dưới, sau đó
nhấn Next:

6
· Tiếp theo chọn vị trí mà bạn muốn Python được cài đặt, sau đó nhấn
Install:

· Bạn đã cài đặt thành công nếu cửa sổ hiện lên như sau:

7
3. Chạy chương trình đầu tiên:

· Trên “Start Menu” của Windows chạy IDLE(Python 3.6 64 bit)

· Chương trình “Python Shell” đã được chạy, nó là một chương trình giúp
bạn viết mã Python:

8
· Nhập vào 1 đoạn code ‘print(“Hello World”)’ và nhấn Enter

· Nếu kết quả như hình trên thì bạn đã cài đặt và chạy thành công chương
trình Python đầu tiên

Bài 2: Khai báo biến trong python


1, Khai báo biến trong Pyhton.
Để khai báo biến trong Python thì mọi người sử dụng cú pháp:

Trong đó:
tenBien là tên của biến mà các bạn muốn đặt. Tên biến này không được bắt đầu bằng số
hay các ký tự đặc biệt, mà chỉ được bắt đầu bằng chữ cái hoặc ký tự _ và nó có phân biệt hoa
thường.
giaTri là giá trị của biến mà bạn muốn gán.
VD: Mình sẽ khai báo một biến name trong Python.

Ngoài ra, các bạn cũng có thể khai báo nhiều biến bằng 1 giá trị trên 1 lần khai báo.
VD:

Hay là khai báo nhiều biến với các giá trị tương ứng của nó trên 1 dòng.
VD:

2, Các kiểu dữ liệu trong Python.

9
Python cũng giống như một số các ngôn ngữ bậc cao khác, khi ta khai báo biến thì kiểu
dữ liệu của nó sẽ tự động được detect. Vì vậy nên chúng ta cũng không phải quá vất vả khi khai
báo 1 biến.
VD: Các kiểu dữ liệu cơ bản trong python.

3, Kiểm tra kiểu dữ liệu.


Trong python, để kiểm tra kiểu dữ liệu của một biến thì chúng ta có thể sử dụng hàm type
với cú pháp như sau:

Trong đó data là biến mà chúng ta cần kiểm tra.


VD:

4, Ép kiểu dữ liệu trong Python.

10
Trong một trường hợp nào đó mà bạn muốn chuyển đổi kiểu dữ liệu của một biến, thì
Python cũng hỗ trợ bạn qua các hàm cơ bản sau:

● float(data) chuyển đổi sang kiểu số thực.


● int(data,base) chuyển đổi sang kiểu số, trong đó base là kiểu hệ số mà các bạn
muốn chuyển đổi sang (tham số này có thể bỏ trống).
● str(data) chuyển đổi sang dạng chuỗi.
● complex(data) chuyển đổi sang kiểu phức hợp.
● tuple(data) chuyển đổi sang kiểu Tuple.
● dict(data) chuyển đổi sang kiểu Dictionary.
● hex(data) chuyển đổi sang hệ 16.
● oct(data) chuyển đổi sang hệ 8.
● chr(data) chuyển đổi sang dạng ký tự.
● ...
VD:

Bài 3: Hàm print trong Python


1. Hàm print trong Python
Hàm print trong Python có tác dụng hiển thị dữ liệu ra màn hình khi chương trình
thực thi. Sử dụng với cú pháp như sau:
print(content)
Trong đó: content là nội dung hay biến mà bạn muốn in ra màn hình, nếu muốn
hiển thị nhiều nội dung khác nhau trên cùng một lần print thì chúng ta chỉ cần ngăn cách
giữa các nội dung bằng dấu phẩy (,).
VD: Hiển thị ra màn hình dòng chữ “Don’t fear”

Kết quả sau khi chạy file trên Visual Studio Code

VD: Hiển thị 2 khối nội dung trên 1 lần print.

11
Chạy kết quả ta thu được

Trong Python, khi truyền nhiều đối số vào hàm print thì chúng sẽ tự động được
phân cách nhau bằng một dấu cách. Ta có thể thay đổi điều này bằng việc truyền thêm
đối số sep = ‘character’ vào hàm print.
Trong đó character là một ký tự hoặc chuỗi dùng để ngăn cách.
VD:

Kết quả sau khi chạy

2. Thay đổi ngắt dòng trong print


Mặc định thì mỗi lần chúng ta print dữ liệu thì nó sẽ tự ngắt dòng cho dòng tiếp
theo.
VD:

Khi chạy đoạn code trên thì chúng ta sẽ thu được kết quả:

Vậy ở đây, khi chúng ta không muốn nó tự động ngắt dòng mỗi khi kết thúc print
nữa thì mọi người sử dụng keyword end thêm vào param cuối cùng của hàm print với cú
pháp như sau:
print(content, end = “charset”)
Trong đó charset là ký tự mà chúng ta muốn thực hiện khi kết thúc hàm print.

12
Kết quả lúc này sẽ thu được như sau:

Bài 4: Chuỗi trong Python


1. Các ký tự đặc biệt trong chuỗi
Để sử dụng các ký tự đặc biệt trong Python khi in ra dữ liệu thì mọi người sử
dụng ký tự \ trước nó.
VD: Khi bạn muốn in ra " mà bạn lại sử dụng "" để chứa nội dung cần in.

Kết quả sau khi chạy trên Visual Studio Code

Tương tự chúng ta có thể làm với dấu nháy đơn (‘).

Kết quả chạy chương trình

Các ký tự đặc biệt khác:


● \n ngắt xuống dòng và bắt đầu dòng mới.
● \t đẩy nội dung phía sau nó 1 tab.
● \a chuông cảnh báo.
● \b xóa bỏ một ký tự trước nó.
● Ngoài ra bạn cũng có thể sử dụng để in ra các ký tự đặc biệt khác bằng việc sử
dụng theo pháp \xnn, với n là 0->9, hoặc a->f hoặc A->F.
● \\ in ra dấu gạch chéo (\)

VD:

13
2. Format chuỗi:
Ngoài những cách in ra dữ liệu ở trên thì mọi người cũng có thể sử dụng các keyword
định dạng cho kiểu giá trị và binding nó vào chuỗi. Sử dụng với cú pháp:

Trong đó:
● type là các kiểu dữ liệu các bạn muốn binding và thay thế vào vị trí đó.
● binding là giá trị mà các bạn muốn binding vào vị trí được xác định trong
chuỗi.
Type là các kiểu sau:
Cú pháp fomat Mô tả

%c character

%s chuỗi

%i số nguyên

%d số nguyên

%u số nguyên

%o bát phân

%x thập lục phân (in thường)

%X thập lục phân (in hoa)

14
%e số mũ (với e thường)

%E số mũ (với e hoa)

%f số thực

%g dạng rút gọn của %f and %e

%G dạng rút gọn của %f and %E

VD: Mình sẽ thực hiện binding 1 chuỗi vào trong 1 chuỗi.

Trong đó nếu như bạn muốn binding nhiều chuỗi vào trong chuỗi thì mỗi giá trị bạn
muốn binding cách nhau bởi 1 dấu ,
VD:

3. Truy cập tới từng giá trị của chuỗi:


Chuỗi trong Python được lưu trữ vào trong các ô nhớ với mỗi ô nhớ tương đương với một
ký tự đơn (khác với các ngôn ngữ khác) và các ký tự này được xếp liên tiếp với nhau. Do đó kiểu
dữ liệu chuỗi trong Python có thể được truy xuất đến từng ký tự trong nó (các ngôn ngữ khác
không có, PHP7.1.X mới hỗ trợ ở đây là reverse index string).
Để truy cập đến từng ký tự bên trong chuỗi, các bạn sử dụng cú pháp sau:

15
Trong đó:
● stringName là tên của biến chứa chuỗi, hoặc chuỗi.
● index là vị trí của ký tự bạn muốn lấy ra. Index này hỗ trợ chúng ta truy
xuất được cả 2 chiều của chuỗi nếu:
○ Tính từ đầu thì nó bắt đầu từ 0.
○ Tính từ cuối thì nó bắt đầu từ -1.
Để cho dễ hiểu thì bạn có thể xem hình sau:

VD:

Nếu trong trường hợp các bạn muốn lấy nội dung của một đoạn chuỗi trong chuỗi đó thì
có thể sử dụng cú pháp sau:

Trong đó:
● stringName là tên của biến chứa chuỗi, hoặc chuỗi.
● start là vị trí của ký tự bắt đầu lấy, nếu để trống start thì nó sẽ lấy từ 0.
● end là vị trí kết thúc (nó sẽ lấy trong khoảng từ start đến < end), nếu để
trống end thì nó sẽ lấy đến hết chuỗi.
VD:

16
Bài 5: Số trong Python:
1, Kiểu dữ liệu số - number trong Python.

Một biến được khai báo là kiểu dữ liệu number trong Python thì xét về mặt lưu trữ bộ
nhớ thì nó sẽ không thay đổi được giá trị, mà khi chúng ta gán giá trị mới cho biến đó thì thực
chất nó sẽ tạo ra các ô nhớ mới khác để lưu trữ giá trị mới đó.
Trong Python hỗ trợ chúng ta 3 kiểu dữ liệu dạng number như sau:
● int kiểu số nguyên kiểu này có kích thước không giới hạn (python 2 thì bị
hạn chế).
● float kiểu số thực. Kiểu này ngoài kiểu viết bình thường ra thì nó cũng có
thể được hiển thị dưới dạng số mũ E (VD: 2.5e2 = 250).
● complex kiểu số phức đây là kiểu dữ liệu rất ít khi được sử dụng tới, nên
mình sẽ không giải thích thêm ở đây.

Nếu như bạn muốn giải phóng một vùng nhớ cho một biến trong Python thì bạn có thể sử
dụng lệnh del với cú pháp sau:

Trong đó, avariableName, avariableName1,... là các biến mà bạn muốn giải phóng.
VD:

2, Ép kiểu số.
Trong một trường hợp nào đó mà bạn muốn chuyển đổi kiểu dữ liệu của một biến, thì
Python cũng hỗ trợ bạn qua các hàm cơ bản sau:
● float(data) chuyển đổi sang kiểu số thực.

17
● int(data,base) chuyển đổi sang kiểu số, trong đó base là kiểu hệ số mà các
bạn muốn chuyển đổi sang (tham số này có thể bỏ trống).
● str(data) chuyển đổi sang dạng chuỗi.
● complex(data) chuyển đổi sang kiểu phức hợp.
● tuple(data) chuyển đổi sang kiểu Tuple.
● dict(data) chuyển đổi sang kiểu Dictionary.
● hex(data) chuyển đổi sang hệ 16.
● oct(data) chuyển đổi sang hệ 8.
● chr(data) chuyển đổi sang dạng ký tự.
● ...
VD:

3, Các toán tử.


Ở đây mình ví dụ biến a = 5 và b = 10:

Toán Tử Ví Dụ Chú Thích

+ a + b // 15 Phép cộng.

- a - b // -5 Phép trừ.

* a * b // 50 Phép nhân.

/ a / b // 0.5 Phép chia.

% a % b // 5 Phép chia lấy dư.

18
Phép chia lấy phần nguyên
// a // b // 0
nếu a, b là dương.

a ** b //
** Phép lũy thừa.
9765625

Bài 18: List trong Python


1. list(): Hàm này có tác dụng chuyển đổi kiểu dữ liệu của một biến sang dạng list
Cú pháp: list(data)
Trong đó data là biến chứa tuple bạn cần chuyển đổi
VD:

2. len(): Hàm này trả về số lượng phần tử có trong list


Cú pháp: len(list)
Trong đó, list là list mà các bạn cần đếm.
VD:

3. max(): Hàm này sẽ trả về phần tử có giá trị lớn nhất trong list. Nếu là chuỗi thì nó
sẽ trả về phần tử có độ dài chuỗi dài nhất, nếu là số thì nó sẽ trả về phần tử có số lớn nhất.
Cú pháp: max(list)
Trong đó, list là list mà các bạn cần kiểm tra.
VD:

19
4. min(): Hàm này sẽ trả về phần tử có giá trị nhỏ nhất trong list. Nếu là chuỗi thì nó
sẽ trả về phần tử có độ dài chuỗi ngắn nhất, nếu là số thì nó sẽ trả về phần tử có số nhỏ nhất.
Cú pháp: min(list)
Trong đó, list là list mà các bạn cần kiểm tra.
VD:

5. append(): Phương thức này có tác dụng thêm phần vào cuối một list
Cú pháp: list.append(obj)
Trong đó:
- List là list mình cần thêm phần tử
- Obj là phần tử mà mình muốn thêm vào list
VD:

6. extend(): Hàm này có tác dụng kế thừa lại các phần tử của list2 và thêm vào trong
list1

20
Cú pháp: list1.extend(list2)
Trong đó:
- list1: là list mình muốn kế thừa từ một list khác (list2)
- list2: là list được kế thừa
VD:

*Lưu ý: phương thức append() và extend() là giống nhau nhưng có một sự khác biệt về
phần tử như sau:
Trong ví dụ dưới, append sẽ hiểu (‘a’,’b’) là 1 đối tượng

7. count(): Phương thức có tác dụng đếm số lần xuất hiện của một thành phần trong
list
Cú pháp: list.count(val)
Trong đó:
- list là list cần kiểm tra
- val là phần tử cần tìm và đếm trong list
VD:

21
8. index(): Phương thức này có tác dụng trả về index xuất hiện đầu tiên của phần tử
mà bạn muốn tìm và nếu như không tìm thấy thì nó sẽ gọi exception
Cú pháp: list.index(val)
Trong đó:
- list là list cần kiểm tra
- val là phần tử cần tìm trong list
VD:

9. insert(): Phương thức có tác dụng thêm phần tử vào vị trí index của list, và các
phần tử sau index đó sẽ được đẩy về phía sau
Cú pháp: list.insert(index,val)
Trong đó:
- list là list bạn cần thêm
- index là vị trí bạn muốn thêm phần tử val vào
- val là phần tử mà bạn muốn thêm vào trong list
VD:

10. reverse(): Phương thức này có tác dụng đảo ngược vị trí của các phần tử trong list
Cú pháp: list.reverse()
VD:

22
11. remove: Phương thức này có tác dụng xoá phần tử khỏi list
Cú pháp: list.remove()
VD:

12. pop(): Phương thức này có tác dụng xóa bỏ phần tử trong list dựa trên index của

Cú pháp: list.pop(index)
Trong đó:
- list là danh sách cần xóa phần tử
- index là index của phần tử mà mình muốn xóa trong list. Mặc định thì index =
list-1
VD:

13. sort(): Phương thức này có tác dụng sắp xếp lại các phần tử trong list theo 1 thứ tự
xác định
Cú pháp: list.sort(reverse, key)
Trong đó:
- list là list muốn sắp xếp
- reverse là một Boolean cấu hình kiểu sắp xếp. Nếu reverse = True thì list sẽ được
sắp xếp từ lớn đến bé, nếu reverse = False thì list sẽ được sắp xếp theo thứ tự từ bé đến lớn. Mặc
định thì reverse = False.
23
- key là callback def để xử lý list hoặc là một lambda function (thường được dùng
để sắp xếp các list tuple hoặc dictionary).
VD:

14. clear(): Phương thức này có tác dụng xóa bỏ hết tất cả các phần tử trong list
Cú pháp: list.clear()
Trong đó : list là list mà bạn muốn xoá bỏ hết phần tử
VD:

Bài 19: Xử lý số học với module math trong Python


Lưu ý: Khi sử dụng hàm của module math, bạn phải import module math trước
bằng câu lệnh sau: import math
1, abs().
Hàm này có tác dụng trả về giá trị tuyệt đối của một số.
Lưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import
modules math.

24
Cú pháp: abs(number)
Trong đó, number là số bạn muốn chuyển đổi.
VD:

Kết quả:

2, fabs().
Hàm này có tác dụng trả về giá trị tuyệt đối của một số. Nhưng nó sẽ có khác với hàm
abs() ở trên là hàm này sẽ chỉ chấp nhận chuyển đổi được kiểu số nguyên (integer) và số thực
(float) trong khi hàm abs() chuyển đổi được cả complex number.
Cú pháp: math.fabs(number)
Trong đó, number là số mà bạn muốn chuyển đổi.
VD:

Kết quả:

3, ceil().
Hàm này có tác dụng chuyển đổi một số về dạng số nguyên của nó và số nguyên đó phải
lớn hơn hoặc bằng số ban đầu. Nói một cách đơn giản thì hàm này có tác dụng làm tròn lên 1 số.
Cú pháp: math.ceil(number)
Trong đó number là số các bạn muốn làm tròn.
VD:

25
4, exp().
Hàm này có tác dụng trả về kết quả e x , trong đó x là đối số truyền vào hàm.
VD:

5, floor().
Hàm này có tác dụng làm tròn một số về dạng số nguyên nhỏ hơn hoặc bằng số ban đầu.
Nói cách khác thì là làm tròn xuống một số.
VD:

26
6, log().
Hàm này sẽ trả về kết quả logarithm x, với x là đối số truyền vào hàm và x > 0.
VD:

7, log10().
Hàm này tương tự như hàm log(), nhưng là dạng logarithm cơ số 10.
VD:

8, max().
Hàm này có tác dụng trả về số lớn nhất trong các số được truyền vào.
Lưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import
modules math.
VD:

27
9, min().
Hàm này có tác dụng trả về số nhỏ nhất trong các số được truyền vào.
Lưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import
modules math.
VD:

10, modf().
Hàm này có tác dụng chuyển đổi một số về một tuple. Tuple này chứa phần thập phân và
phần nguyên của số đó, lưu ý tất cả các giá trị trong tuple này đều ở dạng float.
VD:

11, pow().

28
Hàm này có tác dụng trả về kết quả của phép x y , với x là tham số thứ nhất, y là tham số
thứ 2.
VD:

12, round().
Hàm này có tác dụng làm tròn số về dạng cần thiết.
Lưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import
modules math.
Cú pháp: round(number, count)
Trong đó:
number là số mà các bạn cần làm tròn
count là số mà các bạn muốn làm tròn sau dấu phẩy. Mặc định thì count = 0.
VD:

13, sqrt().
Hàm này có tác dụng trả về căn bậc 2 của một số, với điều kiện số đó phải lớn hơn 0.
VD:

29
14, acos().
Hàm này có tác dụng tính arccos của một số, đơn vị là radian. Với điều kiện số đó phải
nằm trong khoảng: -1<= x <=1.
VD:

15, cos().
Hàm này trả về cosin của một số, nhưng số này được tính theo radian.
VD:

30
16, asin().
Hàm này có tác dụng trả về arcsin của một số, đơn vị là radian. Với điều kiện số đó phải
nằm trong khoảng: -1<= x <=1.
VD:

17, sin().
Hàm này trả về sin của một số, nhưng số này được tính theo radian.
VD:

31
18, atan() - tan().
Tương tự như với asin() - sin() và acos() - cos() ta cũng có atan() và tan() với chức năng
là tính tangent của một số.
VD:

19, radians().
Hàm này có tác dụng chuyển đổi từ độ sang radians.
VD:

32
20, Lời kết.
Ở đây tôi chỉ liệt kê các hàm thông dụng, ngoài ra thì vẫn còn rất nhiều các hàm khác.
Các bạn có thể tham khảo tại đây: https://docs.python.org/3/library/math.html

PHẦN PYTHON NÂNG CAO

Bài 9: Regular Expression trong Python (P2)


Lưu ý: Muốn làm việc được với Regular Expression trước hết ta cần import module của
nó bằng câu lệnh: import re
1, Các cú pháp pattern trong Python.
Dưới đây mình sẽ liệt kê ra một số các cú pháp pattern trong Python mà chúng ta hay sử
dụng và kèm theo với nó là các ví dụ.
[]
Trong cặp dấu này chứa các ký tự có thể so khớp với văn bản. Nó gần giống như toán tử
hoặc, nghĩa là chỉ cần nó so khớp 1 trong các ký tự được liệt kê trong cặp dấu này thì chuỗi đó
được so khớp.
VD: pattern chuỗi bắt đầu bằng n hoặc N.

33
Và bạn cũng có thể liệt kê ra các ký tự dưới dạng từ ... đến ... bằng cách thể hiện dấu -
giữa hai khoảng đó.
VD: Pattern chuỗi bắt đầu bằng ký tự in thường hoặc bằng số.

.
Ký tự dấu . này tương đương với việc so khớp một chuỗi phải chứa ít nhất một ký tự.
VD:

34
^
Ký tự này đại diện cho việc so khớp từ đầu của chuỗi.
VD: So khớp xem có phải đầu chuỗi là chữ h

$
Ký tự này đại diện cho việc so khớp đến cuối chuỗi.
VD: So khớp xem cuối chuỗi có phải chữ T

35
*
Ký tự này đại diện cho có thể có hoặc không có ký tự trước nó.
VD: So khớp một chuỗi xem có thể bắt đầu bằng t hoặc không bắt đầu bằng t hoặc là
chuỗi rỗng.

+
Ký tự này đại diện cho có thể xuất hiện một hoặc nhiều ký tự trước nó.
VD: So khớp xem một chuỗi chỉ chứa chữ cái in thường.

36
?
Nếu đằng trước ? có n ký tự thì chuỗi sẽ khớp với cả n ký tự hoặc khớp với n-1 ký tự
đằng trước ? và bỏ qua ký tự cuối.
VD: ‘abc?’ sẽ match với ‘ab’ hoặc ‘abc’

{m, n}
Ký tự này đại diện cho việc so khớp xem chuỗi đằng trước nó xuất hiện bao nhiêu tối
thiểu m lần và tối đa n lần. Nếu bỏ trống n thì là so khớp sự xuất hiện m lần của chuỗi đằng trước
nó.
VD: Kiểm tra xem 3 chữ cái đầu của chuỗi có phải là V không.

37
|
Ký tự này đại diện cho sự tồn tại của một trong 2 xâu trước và sau nó.
VD:

()
Ký tự này dùng để gom nhóm các pattern lại với nhau.
VD: Kiểm tra xem chuỗi có chứa chữ 'thank' không.

38
\
Ký tự này giúp phân biệt chuỗi sau nó không phải là ký tự đặc biệt.
VD: Kiểm tra xem đầu chuỗi có phải là dấu . không.

Các pattern khác

Pattern Mô tả

\A So khớp chuỗi là chuỗi.

\B Nó match với 1 string trống nhưng nó phải nằm ở giữa


chuỗi không được ở đầu hoặc cuối.

39
So khớp với số nguyên.
\d

\D So khớp với các ký tự không phải là số.

\s So khớp với ký tự khoảng trắng và các ký tự chữ.

\S So khớp với các ký tự không phải chữ.

\w So khớp với chữ hoặc số.

\W So khớp với các ký tự không phải chữ hoặc số.

... ...
2, Các flags trong Python.
Một số các flags hay dùng trong Python:
I hoặc IGNORECASE - Không phân biệt hoa thường khi so khớp.
L hoặc LOCALE - So Khớp với locate hiện tại.
M hoặc MULTILINE - Thay đổi $ và ^ thành kết thúc của một dòng và bắt đầu của một
dòng thay vì mặc định là kết thúc chuỗi và bắt đầu chuỗi.
A hoặc ASCII - Thay đổi \w, \W, \b, \B, \d, \D, \S và \s thành so khớp full unicode.
S hoặc DOTALL -Thay đổi pattern . thành khớp với bất kỳ ký tự nào và dòng mới.
.....
VD: So khớp một chuỗi bắt đầu bằng v hoặc V.

3, Lời kết

40
Như vậy phần này mình đã giới thiệu xong đến mọi người cơ bản về regular Expression
trong Python rồi. Các bạn muốn tìm hiểu thêm thì tham khảo tại đây:
https://docs.python.org/3/library/re.html

41

You might also like