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 typevới cú pháp như sau: Trong đó data là biến mà chúng ta cần kiểm tra.. Trong một trường hợp nào đó
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2Sinh 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 3Bài 2: Khai báo biến trong python 9
Trang 3Bà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
Trang 4PHẦ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
Trang 5· 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:
Trang 6· Sau khi download xong, chỉ cần mở file vừa tải về lên
Trang 7· 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:
Trang 8· 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:
Trang 93 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:
Trang 10· 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
Trang 11Python 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 typevớ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
Trang 12Trong 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:
muốn chuyển đổi sang (tham số này có thể bỏ trống)
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
Trang 13Chạ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
Trang 14Kế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ó
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
Trang 152 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:
%x thập lục phân (in thường)
%X thập lục phân (in hoa)
Trang 16VD: 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:
Trang 17Trong đó:
● 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:
● 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:
Trang 18Bà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:
Trang 19● 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ự
Trang 20// a // b // 0 nếu a, b là dương.Phép chia lấy phần nguyên
** 9765625a ** b // Phép lũy thừa
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 đổiVD:
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:
Trang 214 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 tronglist1
Trang 22Cú 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:
Trang 238 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:
Trang 2411 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 nó
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ẽ đượcsắ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
Trang 25- 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
Trang 28Hà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:
Trang 299, 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
Trang 30Hà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.
Trang 3420, 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.
Trang 35Và 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:
Trang 36Ký 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
Trang 37Ký 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.
Trang 38VD: Kiểm tra xem 3 chữ cái đầu của chuỗi có phải là V không.
Trang 39Ký 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.
Trang 40Ký 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
\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
Trang 412, 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
Trang 42Như 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