You are on page 1of 174

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

By VŨ THANH TÀI


19-09-2017 7 phút đọc
Font size  

Ở bài trước mình đã giới thiệu qua với mọi người về ngôn ngữ python rồi,
và ở đây mình nhắc lại một lần nữa là series này mình sẽ nói về python
3. Bài này chúng ta sẽ cùng nhau đi vào tìm hiểu về cách khai báo biến và
các kiểu dữ liệu trong Python.

Mục Lục

 1, Khai báo biến trong Pyhton.

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

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

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

 5, Lời kết.

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:

python

copy

tenBien = giaTri

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.

python

copy

name = "Vũ Thanh Tài"

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:

python

copy

a = b = c = 1996

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:

python

copy

name, age, male = "Vũ Thanh Tài", 22 , True

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


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.


python

copy

name = "Vũ Thanh Tài"

#string

age = 22

#integer

point = 8.9

#float

option = [1,2,3,4,5]

#lists

tuple = ('Vũ Thanh Tài', 22 , True)

#Tuple

dictionary = {"name": "Vu Thanh Tai", "age": 22, "male": True}

#Dictionary

Từng bài sau mình sẽ đi vào chi tiết các kiểu dữ liệu này nên các bạn cũng
không cần phải quá lo lắng vì chưa biết về nó nhé.

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:

python

copy

type(data)

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

VD:

python

copy

name = "Vũ Thanh Tài"

type(name)

#string

age = 22

type(age)

#int

point = 8.9

type(point)

#float

option = [1,2,3,4,5]
type(option)

#list

tuplet = ('Vũ Thanh Tài', 22 , True)

type(tuplet)

#Tuple

dictionary = {"name": "Vu Thanh Tai", "age": 22, "male": True}

type(dictionary)

# dict

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


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:

python

copy

age = 22;

# ép sang float

floatAge = float(age)

print(type(floatAge))

#ép sang integer.

intAge = int(age)

print(type(intAge))

#ép sang chuỗi.

strAge = str(age)

print(type(strAge))

Bài 3: Hàm print trong Python


By VŨ THANH TÀI
19-09-2017 4 phút đọc
Font size  

Trong các ngôn ngữ lậ p trình thì nó luôn luôn tồ n tạ i mộ t hoặ c nhiều hàm
đượ c cùng để hiển thị dữ liệu ra khi chương trình chạ y. VD như trong C thì
có printf, trong C++ thì có cout,... Và đố i vớ i python thì nó là print.

Mục Lục

 1, Hàm print trong Python.

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

 3, Lời kết.

1, Hàm print trong Python.


Hàm print trong Python có tác dụ ng hiển thị dữ diệu ra màn hình khi chương
trình thự c thi. Sử dụ ng vớ i cú pháp như sau:

python

copy

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ì mọ i
chúng ta chỉ cầ n ngă n các giữ a các nộ i dung bằ ng dấ u ,.

VD: Hiển thị ra màn hình dòng chữ "Toidicode.com".

python

copy

#file lesson1.py

print("Toidicode.com")
Sau khi chạ y file thì các bạ n sẽ thấ y ngay.

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

python

copy

print("Toidicode.com", " Created by thanhtaivtt")

2, Thay đổi ngắt dòng 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:

python

copy

Toidicode.com

Author: Vu Thanh Tai

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

copy

Toidicode.com

Author: Vu Thanh Tai

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:

python

copy

print(content, end = "charset")

Trong đó là charset là ký tự mà chúng ta muố n thự c hiện khi kết thúc hàm
print.

python

copy

print("Toidicode.com", end = " - ")

print("Hoc lap trinh online")

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

text

copy

Toidicode.com - Hoc lap trinh online

Bài 4: Chuỗ i trong Python


By VŨ THANH TÀI
20-09-2017 10 phút đọc
Font size  
Tấ t cả các ngôn ngữ lậ p trình đều có kiểu dữ liệu là kiểu chuỗ i, và trong
Python nó cũ ng không ngoạ i lệ. Bài này mình sẽ cùng mọ i ngườ i tìm hiểu
xem chuỗ i trong Python có ưu điểm gì hơn các ngôn ngữ khác không nhé.

Mục Lục

 1, Các ký tự đặc biệt trong chuỗi.

 2, Fomat chuỗi.

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

 4, Lời kết.

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 int ra


chuỗ i.

python

copy

print("Website \"Toidicode.com\" ")

#Website "Toidicode.com"

Tương tự chúng ta có thể làm vớ i '.

python

copy

print('Website \'Toidicode.com\' ')

#Website 'Toidicode.com'
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ó cách 1 tab.

 \a chuông cảnh báo.

 \b xóa bỏ khoảng trắng phía 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 cú pháp \xnn, với n là 0->9, hoặc a->f hoặc A->F.

VD:

python

copy

print("Website \t Toidicode.com")

#Website Toidicode.com

2, Fomat 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:

python

copy

print("%type" %(binding))

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)

%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.

python

copy

guy = "Ban"

full = "Chao mung %s den voi website toidicode.com" %(guy)

print(full)

# Chao mung Ban den voi website toidicode.com


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:

python

copy

guy = "Ban"

doamin = "toidicode.com"

full = "Chao mung %s den voi website %s" %(guy, doamin)

print(full)

# Chao mung Ban den voi website toidicode.com

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:

python

copy

stringName[index]

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: 

python

copy

name = "Vu Thanh Tai"

print(name[0]) # V

print(name[-1]) # i

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:
python

copy

stringName[start:end]

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:

python

copy

name = "Vu Thanh Tai"

print(name[0:2]) # Vu

print(name[-3:12]) # Tai

print(name[9:]) # Tai

print(name[-3:]) # Tai
Bài 5: Số trong Python
By VŨ THANH TÀI
20-09-2017 5 phút đọc
Font size  

Ở bài trướ c chúng ta đã đượ c tìm hiểu về kiểu dữ liệu chuỗ i - String trong
Python rồ i và chuỗ i trong Python đượ c hỗ trợ rấ t mạ nh, không biết đố i vớ i
kiểu dữ liệu số - number trong Python có đượ c hỗ trợ mạ nh như chuỗ i
không nhé.

Mục Lục

 1, Kiểu dữ liệu số - number trong Python.

 2, Ép kiểu số.

 3, Các toán tử.

 4, Lời kết.

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ể 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:

python

copy

del avariableName

//hoặc xóa nhiều biến

del avariableName1, avariableName2,..., avariableName3

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


phóng.

VD:

python

copy

age = 22

print(age) # 22

del age

print(age)

# name 'age' is not defined

2, Ép kiểu số.
Ở phầ n khai báo biến trong Python mình cũ ng đã trình bày về phầ n này rồ i,
nên bạ n nào cầ n thì có thể quay lạ i đọ c tạ i đây.

3, Các toán tử.


Vì phầ n này nó giố ng vớ i các ngôn ngữ khác nên mình cũ ng chỉ chú thích
qua cho các bạ n biết thôi nhé!

Ở đâ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ư.

Bài 6: List trong Python


By VŨ THANH TÀI
21-09-2017 9 phút đọc

Font size  

Ở các bài trướ c chúng ta đã đượ c tìm hiểu về 2 kiểu dữ


liệu string và number trong Python rồ i, bài này chúng ta sẽ tiếp tụ c tìm
hiểu về kiểu dữ liệu thứ 3 trong Python đó là list.

Mục Lục

 1, List là gì? và khai báo list trong Python.

 2, Truy cập đến các giá trị trong list.

 3, Sửa đổi và xóa bỏ giá trị phần tử trong list.

o Update
o Delete

 4, List lồng nhau.

 4, Lời kết.

1, List là gì? và khai báo list trong Python.


List trong Python là mộ t dạ ng dữ liệu cho phép lưu trữ nhiều kiểu dữ
liệu khác nhau trong nó, và chũ ng ta có thể truy xuấ t đến các phầ n tử
bên trong nó thông qua vị trí củ a phầ n tử đó trong list. Ở đây, nếu như
bạ n nào đã tìm hiểu qua mộ t ngôn ngữ nào đó thì có thể coi list trong
Python như mộ t mả ng tuầ n tự trong các ngôn ngữ khác.

Để khai báo mộ t list trong Python thì chúng ta sử dụ ng cặ p dấ u [] và


bên trong là các giá trị củ a list.

python

copy
[value1, value2,..., valueN]

Trong đó: value1, value2,..., valueN là các giá trị củ a list.

VD: Mình sẽ khai báo 1 list chứ a tên các họ c sinh.

python

copy
name = ['VU Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

2, Truy cập đến các giá trị trong list.


Để truy cậ p đến các phầ n tử trong list thì các bạ n làm tương tự như đố i
vớ i chuỗ i.

Các phầ n tử trong mộ t list đượ c đánh dấ u bắ t đầ u từ  0 theo chiều từ


trái sang phả i và từ  -1 theo chiều từ phả i qua trái.

VD: Mình sẽ truy xuấ t đến từ ng phầ n tử mộ t củ a list trong VD trên.

python

copy
name = ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

print(name[0]) # Vu Thanh Tai

print(name[1]) # Nguyen Van A

print(name[2]) # Nguyen Thi E

# hoặc

print(name[-3]) # Vu Thanh Tai

print(name[-2]) # Nguyen Van A

print(name[-1]) # Nguyen Thi E


Trong trườ ng hợ p bạ n muố n in ra mộ t phầ n củ a list thì bạ n sử dụ ng cú
pháp sau:

python

copy
list[start:end]

Trong đó:

 list là tên của biến chứa list.

 start là ví trí bắt đầu lấy ra list con. Nếu để trống thì nó sẽ lấy từ đầy list.

 end là vị trí kết thúc. Nếu để trống thì nó sẽ lấy đến phần tử cuối cùng của

list.

VD:  Lấ y ra 2 phầ n tử đầ u củ a list trên.

python

copy
name = ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

print(name[0:2])

# ['Vu Thanh Tai', 'Nguyen Van A']

# hoặc

print(name[-3:-1])

# ['Vu Thanh Tai', 'Nguyen Van A']


3, Sửa đổi và xóa bỏ giá trị phần tử trong list.
Sau khi bạ n đã truy cậ p đượ c đến các phầ n tử trong list rồ i thì bạ n có
thể xử lý nó như nào tùy thích theo ý củ a bạ n (sử a - xóa).
Update

Để sử a giá trị củ a các phầ n tử trong list thì các bạ n chỉ cầ n truy cậ p đến
phầ n tử mà mình cầ n sử a đổ i và tiến hành gán giá trị mớ i cho nó.

VD: Sử a name thứ 2 trong list ở ví dụ trên thành 1996.

python

copy
name = ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

print(name)

# ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

name[1] = 1996

print(name)

# ['Vu Thanh Tai', 1996, 'Nguyen Thi E']

Delete

Để xóa mộ t hoặ c nhiều phầ n tử trong list thì các bạ n cầ n truy cậ p đến


phầ n tử cầ n xóa và dùng hàm del để xóa. Và sau khi chúng ta xóa phầ n
tử trong list thì index củ a list sẽ đượ c cậ p nhậ t lạ i.

VD: Xóa phầ n tử thứ 3 trong list trên.

python
copy
name = ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

print(name)

# ['Vu Thanh Tai', 'Nguyen Van A', 'Nguyen Thi E']

del name[2]

print(name)

# ['Vu Thanh Tai', 'Nguyen Van A']

4, List lồng nhau.


Do list có thể chứ a nhiều kiểu dữ liệu khác nhau lên chúng ta hoàn toàn
có thể khai báo mộ t list chứ a mộ t hoặ c nhiều list khác nhau.

VD:

python

copy
option = [12,5,1996]

myList = ['Vu Thanh Tai', option]

print(myList)

# ['Vu Thanh Tai', [12, 5, 1996]]

Và cứ như thế chúng ta có thể lồ ng N list khác vào trong list.

Đố i vớ i list lồ ng nhau như này thì chúng ta chũ ng truy xuấ t đến các
phầ n tử như bình thườ ng, theo cấ p từ ngoài vào trong.

VD: Mình sẽ truy cậ p vào phầ n tử dầ u tiên trong list option.


python

copy
option = [12,5,1996]

myList = ['Vu Thanh Tai', option]

print(myList)

# ['Vu Thanh Tai', [12, 5, 1996]]

subList = myList[1] # [12, 5, 1996]

subList[0] # 12

# hoặc có thể viết ngắn gọn như sau

myList[1][0] # 12

Bài 7: Tuple trong Python


By VŨ THANH TÀI
22-09-2017 9 phút đọc

Font size  

Bài này chúng ta sẽ tiếp tụ c tìm hiểu về kiểu dữ liệu thứ 4 trong ngôn
ngữ  lập trình Python, đó là kiểu Tuple.

Mục Lục

 1, Tuple Trong Python là gì?

 2, Truy cập đến các phần tử trong Tuple.

 3, Các tác vụ khác trên Tuple.

o Xóa Tuple.
o Thêm mới phần tử.

 4, Tuple lồng.

 5, Lời kết.

1, Tuple Trong Python là gì?


Tuple trong Python là mộ t kiểu dữ liệu dùng để lưu trữ các đố i tượ ng
không thay đổ i về sau (giố ng như hằ ng số ). Còn lạ i thì cách lưu trữ củ a
nó cũ ng khá giố ng như kiểu dữ liệu list mà bài trướ c chúng ta đã đượ c
tìm hiểu.

Để khai báo mộ t enum thì mọ i ngườ i sử dụ ng cú pháp sau:

python

copy
(val1, val2,.., valn)

Trong đó, val1, val2,.., valn  là các giá trị củ a tuple.

VD: Mình sẽ khai báo 1 Tuple chứ a các ngày trong tuầ n.

python

copy
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' ,
'sunday')

Nếu bạ n khai báo 1 biến chứ a các giá trị mà không đượ c bao quang bở i
dấ u () thì Python cũ ng nhậ n định nó là mộ t tuple (nhưng mình khuyên
mọ i ngườ i lên sử dụ ng cách đầ u tiên cho code đượ c tườ ng minh).
VD:

python

copy
day = 'monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday'

Và nếu như bạ n muố n khai báo 1 tuple trố ng thì bạ n chỉ cầ n khai báo
như sau:

python

copy
a = ();

Còn nếu như tuple củ a bạ n chỉ chứ a duy nhấ t mộ t giá trị thì bắ t buộ c
bạ n phả i thêm mộ t dấ u , nữ a đằ ng sau giá trị đó.

VD:

python

copy
a = (10,)

2, Truy cập đến các phần tử trong Tuple.


Để truy cậ p đến các phầ n tử trong Tuple thì các bạ n thự c hiện tương tự
như đố i vớ i chuỗ i và list.

 Các phần tử trong Tuple được đánh dấu từ 0 theo chiều từ trái qua phải.

 Và ngược lại từ -1 theo chiều từ phải qua trái.

VD: Mình sẽ truy cậ p đến các phầ n tử trong tuple day ở trong VD trên.
python

copy
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' ,
'sunday')

day[0] # monday

day[-2] # saturday

Và nếu như bạ n muố n lấ y ra mộ t tuple con trong tuple hiện tạ i thì bạ n


có thể sử dụ ng cú pháp sau (giố ng vớ i list và string):

python

copy
tupleName[start:end]

Trong đó:

 start là vị trí bắt đầu lấy. Nếu để trống start thì nó sẽ lấy từ đầu Tuple.

 end là vị trí kết thúc. Nếu để trống end thì nó sẽ lấy đến hết Tuple.

VD: 

python

copy
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' ,
'sunday')

day[1:3] # ('tuesday', 'wednesday')


day[:3] # ('monday', 'tuesday', 'wednesday')

day[1:] # ('tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')

3, Các tác vụ khác trên Tuple.


Xóa Tuple.

Như mình đã nói ở trên thì khi mộ t tuple đã đượ c khai báo giá trị thì
chúng ta không thể sử a đổ i hay xóa các giá trị đó đượ c mà chúng ta chỉ
có thể xóa cả tuple đi đượ c thôi.

Để xóa mộ t hay nhiều tuple thì chúng ta sử dụ ng hàm del .

VD: Mình sẽ xóa Tuple day.

python

copy
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' ,
'sunday')

del day

print(day) # Error: name 'day' is not defined

Thêm mớ i phầ n tử .

Thự c ra đây chỉ là cách lách luậ t thôi, chứ mộ t tuple đã đượ c khai báo
thì chúng ta chỉ đượ c gọ i và không đượ c sử a đổ i hay thêm mớ i bấ t cứ
mộ t cái gì cả . Nhưng chúng ta có thể tạ o ra đượ c mộ t tuple mớ i từ các
tuple đã có bằ ng biểu thứ c + hai tuple.

VD: Mình sẽ ghép 2 tuple day1 và day2 thành tuple day.


python

copy
day1 = ('monday', 'tuesday', 'wednesday')

day2 = ('thursday', 'friday', 'saturday' , 'sunday')

day = day1 + day2

print(day)

# ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')

4, Tuple lồng.
Cũ ng giố ng như list, bạ n cũ ng có thể khai báo các tuple lồ ng nhau.

VD:

python

copy
day1 = ('monday', 'tuesday', 'wednesday')

day2 = ('thursday', 'friday', 'saturday' , 'sunday', day1)

# day = day1 + day2

print(day2)

# ('thursday', 'friday', 'saturday', 'sunday', ('monday', 'tuesday', 'wednesday'))


print(day2[4][0]) # monday

Và bạ n có thể lồ ng bao nhiêu cấ p cũ ng đượ c. Và lồ ng bấ t cứ mộ t kiểu


dữ liệu nào cũ ng ok.

Bài 8: Dictionary trong Python


By VŨ THANH TÀI
22-09-2017 9 phút đọc
Font size  
Ở các phầ n trướ c chúng ta đã đượ c tìm hiểu về các kiểu dữ liệu như
string, number, list, tuple rồ i, và phầ n này chúng ta sẽ cùng đi vào tìm
hiểu mộ t kiểu dữ liệu cuố i cùng trong 5 kiểu dữ liệu chuẩ n củ a Python
đó là Dictionary.
Mục Lục

 1, Dictionary là gì?

 2, Truy cập đến các phần tử trong dictionary.

 3, Thay đổi giá trị của dictionary.

 4, Xóa phần tử trong diction.

 5, Dictionary lồng nhau.

 6, Lời kết.

1, Dictionary là gì?
Kiểu dữ liệu dictionary trong Python là mộ t kiểu dữ liệu lưu trữ các giá
trị chứ a key và value , nhìn mộ t cách tổ ng quát thì nó giố ng vớ i Json.
Và đố i vớ i kiểu dữ liệu này thì các giá trị bên trong nó không đượ c sắ p
xếp theo mộ t trậ t tự nào cả .
Để khai báo mộ t dictionary chúng ta sử dụ ng cặ p dấ u {} theo cú pháp sau:
python
copy
{key1: value1, key2: value2,..., keyN: valueN}
Trong đó, key1: value1, key2: value2,..., keyN: valueN  là các key và
giá trị củ a kiểu dữ liệu dictionary. Và tên củ a key thì các bạ n phả i tuân
thủ theo mộ t số quy tắ c sau:
 Các phần tử đều phải có key.

 Và Key chỉ có thể là số hoặc chuỗi.

 Key phải là duy nhất, nếu không nó sẽ nhận giá trị của phần tử có key

được xuất hiện cuối cùng.

 Key khi đã được khai báo thì không thể đổi được tên.

Key có phân biệt hoa thường.


VD: Mình sẽ khai báo mộ t dictionary có tên là person.
python
copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'single'
}

2, Truy cập đến các phần tử trong dictionary.


Ở trên mình có nói là các phầ n tử trong dictionary đượ c sắ p xếp không
theo mộ t thứ tự nào cả , nên cũ ng chính vì điều đó mà chúng ta không
thể nào sử dụ ng đượ c cú pháp như đố i vớ i string và list mà chúng ta sẽ
dự a vào các key củ a nó để truy xuấ t.

-Để truy cậ p đến các phầ n tử trong dictionary thì các bạ n sử dụ ng cú


pháp sau:
python

copy
dicName[key]

Trong đó:
 dicName là tên của của dictionary.

 key là tên của key các bạn muốn lấy ra trong dictionary.

VD: Mình sẽ lấ y ra name và status củ a dictionary person trên.


python
copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'single'
}
person['name'] # Vũ Thanh Tài

person['status'] # signle

3, Thay đổi giá trị của dictionary.


Để thay đổ i giá trị củ a phầ n tử trong dictionary thì ta cũ ng là tương tự
như đố i vớ i list là truy cậ p đến phầ n tử cầ n truy cậ p và thay đổ i giá trị
củ a nó.

VD: Mình sẽ đổ i status thành married (an ủ i mình tí :D).


python
copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'alone'
}
person['status'] = 'married'
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True, 'status': 'married'}

4, Xóa phần tử trong diction.


Để xóa mộ t phầ n tử trong dictionary thì chúng ta sử dụ ng hàm del và
chọ n phầ n tử cầ n xóa.

VD:

python

copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'alone'
}

del person['status']
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True}
Và nếu như bạ n muố n xóa tấ t cả các phầ n tử bên trong dictionary thì
bạ n sử dụ ng phương thứ c clear theo cú pháp:

python

copy
dictName.clear();

Trong đó, dictName là dictionary mà bạ n muố n xóa hết phầ n tử .

VD:

python

copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'alone'
}

person.clear()
print(person)
#{}
Và nếu như bạ n muố n xóa hẳ n dictionary thì bạ n dùng hàm del để xóa.

VD:

python

copy
person = {
'name': 'Vũ Thanh Tài',
'age': 22,
'male': True,
'status': 'alone'
}

del person
print(person)
#error: name 'person' is not defined

5, Dictionary lồng nhau.


Cũ ng giố ng như kiểu dữ liệu list, tuple thì trong dicrtionary các bạ n
cũ ng có thể lồ ng bấ t kỳ kiểu dữ liệu nào bạ n thích vào trong nó.

VD: Mình sẽ lồ ng mộ t dictionary vào trong dictionary và đồ ng thờ i truy


vấ n luôn đến dictionary con.
python
copy
person = {
'name': 'Vũ Thanh Tài',
'option': {
'age': 22,
'male': True,
'status': 'alone'
}
}

print(person['option']['age'])

# 22

Bài 9: Các toán tử cơ bả n trong Python


By VŨ THANH TÀI
24-09-2017 15 phút đọc
Font size  
Ở phầ n kiểu dữ liệu number trong Python mình cũ ng nói qua về mộ t số
toán tử trong Python rồ i, nhưng đó mớ i chỉ là mộ t phầ n nhỏ thôi, trên
thự c tế thì Python sẽ có các toán tử cơ bả n như sau:
 Toán tử số học - Arithmetic Operators

 Toán tử quan hệ - Comparison (Relational) Operators

 Toán tử gán - Assignment Operators.

 Toán tử logic - Logical Operators.

 Toán tử Biwter - Bitwise Operators.

 Toán tử khai thác - Membership Operators.

 Toán tử xác thực - Indentity Operators.

Bài này chúng ta sẽ cùng nhau đi vào tìm hiểu về các toán tử này.
Mục Lục

 1, Toán tử số học - Arithmetic Operators.

 2, Toán tử Quan hệ.


 3, Toán tử gán.

 4, Toán tử logic.

 5, Toán tử biwter.

 6, Toán Tử khai thác.

 7, Toán tử xác thực.

 8, Lời kết.

1, Toán tử số học - Arithmetic Operators.


 Toán tử số họ c trong python đượ c thể hiện dướ i 7 dạ ng cơ bả n sau:
(trong các ví dụ dướ i đây thì ta coi a có giá trị là 5 và b có giá trị là 7).

Toán tử Mô Tả Ví Dụ

Toán tử cộng các giá trị lại với


+ a + b = 12
nhau

Toán tử trừ các giá trị lại với


- a - b = -2
nhau

Toán tử nhân các giá trị lại với


* a * b = 42
nhau

/ Toán tử chia các giá trị cho nhau a / b = 0.7142857142857143

% Toán tử chia lấy phần dư  a%b=5

** Toán tử mũ. a**b = ab a ** b = 78125

Toán tử chia làm tròn xuố ng.


VD:
0,57 => 0
// a // b = 0
0.9 => 0
-07 => -1
-0.1 => -1
2, Toán tử Quan hệ.
Dạ ng toán tử này dùng để so sánh các giá trị vớ i nhau kết quả củ a nó sẽ
trả về là True nếu đúng và False nếu sai. Và nó thườ ng đượ c dùng trong
các câu lệnh điều kiện.

Trong Python thì nó cũ ng tồ n tạ i 6 dạ ng toán tử quan hệ cơ bả n như


sau:

(trong các ví dụ dướ i đây thì ta coi a có giá trị là 5 và b có giá trị là 7).

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

So sánh giá trị củ a các đố i số xem có bằ ng nhau hay


không. a == b  //
==
Nế u bằ ng nhau thì kế t quả trả về sẽ là True và ngượ c lạ i False
sẽ là False.

So sánh giá trị của các đối số xem có khác nhau hay không.
a != b
!= Nếu khác nhau thì kết quả trả về sẽ là True và ngược lại sẽ
//True
là False.

Dấu < đại diện cho phép toán nhỏ hơn, nếu đối số 1 nhỏ hơn a<b
<
đối số 2 thì kết quả sẽ trả về là True và ngược lại sẽ là False. //True

Dấu > đại diện cho phép toán lớn hơn, nếu đối số 1 lớn hơn a>b
>
đối số 2 thì kết quả sẽ trả về là True và ngược lại sẽ là False. //False

Dấu > đại diện cho phép toán nhỏ hơn hoặc bằng, nếu đối số
a <= b
<= 1 nhỏ hơn hoặc bằng đối số 2 thì kết quả sẽ trả về là True và
//True
ngược lại sẽ là False.

Dấu > đại diện cho phép toán lớn hơn hoặc bằng, nếu đối số 1
a>= b
>= lớn hơn hoặc bằng đối số 2 thì kết quả sẽ trả về là True và
//False
ngược lại sẽ là False.

3, Toán tử gán.
Toán tử gán là toán tử dùng đế gán giá trị củ a mộ t đố i tượ ng cho mộ t
đố i tượ ng khác. Và trong Python thì nó cũ ng đượ c thể hiện giố ng như
các ngôn ngữ khác. Và dướ i đây là 8 toán tử nằ m trong dạ ng này mà
Python hỗ trợ .

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

Toán tử này dùng để gán giá trị của


 = c = a (lúc này c sẽ có giá trị = 5)
một đối tượng cho một giá trị

Toán tử này cộng rồi gắn giá trị cho


+= c += a (tương đương với c = c + a)
đối tượng

Toán tử này trừ rồi gắn giá trị cho đối


-= c -= a (tương đương với c = c - a)
tượng

Toán tử này trừ rồi gắn giá trị cho đối


*= c *= a (tương đương với c = c * a)
tượng

Toán tử này chia rồi gắn giá trị cho đối


/= c /= a (tương đương với c = c / a)
tượng

Toán tử này chia hết rồi gắn giá trị cho


% c %= a (tương đương với c = c % a)
đối tượng

Toán tử này lũy thừa rồi gắn giá trị cho c **= a (tương đương với c = c **
**=
đối tượng a)

Toán tử này chia làm tròn rồi gắn giá


//= c //= a (tương đương với c = c // a)
trị cho đối tượng

4, Toán tử logic.
Toán tử logic trong Python hoàn toàn giố ng như các ngôn ngữ khác. Nó
gồ m có 3 kiểu cơ bả n như sau:

Toán
Chú Thích
Tử

Nếu 2 vế của toán tử này đều là True thì kết quả sẽ là True và ngược lại nếu 1
and
trong 2 vế là False thì kết quả trả về sẽ là False.

Nếu 1 trong 2 vế là True thì kết quả trả về sẽ là True và ngược lại nếu cả 2 vế
or
là False thì kết quả trả về sẽ là False.
Đây là dạng phủ định, nếu biểu thức là True thì nó sẽ trả về là False và ngược
not
lại.

5, Toán tử biwter.
Toán tử này thự c hiện trên các bit củ a các giá trị. Hãy tưở ng tượ ng
mình có 2 biến a = 12 và b = 15 nhưng nếu chúng ta convert chúng sang
hệ nhị phân thì 2 biến này sẽ có giá trị như sau: a = 00001100 và b =
00001111. Về phầ n này thì rấ t ít khi sử dụ ng và cũ ng khó translate sang
tiếng việt nên mình xin đượ c phép viết toán hạ ng và ví dụ thôi.

Toán Tử Ví Dụ

& (a & b) = 12 (00001100)

| (a | b) = 14 (00001111)

^ (a ^ b) = 2 (00000010) 

~ (-a) = -13 (00001101)

<< a<<a = 49152

>> a>>a = 0

6, Toán Tử khai thác.


Toán tử này thườ ng đượ c dùng để kiểm tra xem 1 đố i số có nằ m trong
1 tậ p hợ p đố i số hay không (list). Trong Python hỗ trợ chúng ta 2 dạ ng
toán tử như sau:

Giả sử : a = 4, b = [1,5,7,6,9]

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

a in
Nếu 1 đối số thuộc một tập đối số nó sẽ trả về True
in b
và ngược lại/
//False
a not
Nếu 1 đối số không thuộc một tập đối số nó sẽ trả về in
not in
True và ngược lại/ b
//True

7, Toán tử xác thực.


Dạ ng Toán tử này dùng để xác thự c hai giá trị xem nó có bằ ng nhau
hay không. Và trong Python hỗ trợ chúng ta 2 dạ ng sau:

Giả sử : a = 4, b =5

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

Toán tử này sẽ trả về True nếu a


is  a is b //False
== b và ngược lại

Toán tử này sẽ trả về True nếu a !=


not is a is not b //True
b và ngược lại

Bài 10: Câu lệnh rẽ nhánh trong Python


By VŨ THANH TÀI
26-09-2017 8 phút đọc

Font size  

Cấ u trúc rẽ nhánh là mộ t phầ n không thể thiếu đượ c trong các ngôn
ngữ lậ p trình, và đương nhiên là vớ i Python cũ ng không ngoạ i lệ, bài
này chúng ta hay cũ ng nhau tìm hiểu về cấ u trúc rẽ nhánh trong Python
nhé!

Mục Lục

 1, Luồng xử lý.

 2, Các câu lệnh rẽ nhánh.

o Câu lệnh if-else


o Câu lệnh if-elif-else.

 3, Lời kết.

1, Luồng xử lý.
Nếu như trong thự c tế, chúng ta thườ ng có các trườ ng hợ p để xử lý
vấ n đề thì trong ngôn ngữ lậ p trình nó cũ ng như thế khái niệm này
trong lậ p trình gọ i là rẽ nhánh.

Nói mộ t cách dễ hiểu hơn thì "nếu điều kiện này đúng thì thực hiện
khối lệnh A, nếu sai thì thực hiện khối lệnh B". Ở đây các điều kiện trả
về giá trị khác 0 hoặc bằng True thì coi là đúng và trả về 0, None hoặc
False thì coi là sai.

2, Các câu lệnh rẽ nhánh.


Câu lệnh rẽ nhánh trong Python đượ c thể hiện qua cậ u lệnh if-else vớ i
các dạ ng sau:
Câu lệnh if-else

If-else dịch ra tiếng Việt có nghĩa là nếu thì và nó ở trong lậ p trình


cũ ng thế. Các điều kiện mà mệnh đề if đưa ra trả về là đúng (True) thì
nó sẽ thự c thi code bên trong mệnh đề if và ngượ c lạ i nếu điều kiện đó
sai thì nó sẽ thự c hiện code trong mệnh đề else.

Cú pháp của câu lệnh if-else:

python

copy
if condition:

#code

else:

#code

Trong đó, condition là điều kiện củ a mệnh đề if.

VD: Mình sẽ viết 1 chương trình kiểm tra xem giá trị củ a biến a bằ ng
100 thì in ra là đúng và nếu không bằ ng thì in ra là sai.

python

copy
a = 100

if (a == 100):

print('Dung')

else:

print('Sai')

# Ket qua: Dung


Nếu như trong trườ ng hợ p chúng ta không cầ n thự c thi điều gì khi điều
kiện đó không đúng thì chúng ta có thể bỏ mệnh đề else cho gọ n code.

VD: Mình sẽ bỏ mệnh đề else ở VD trên đi.

python

copy
a = 100

if (a == 100):

print('Dung')

# Ket qua: Dung

Và đương nhiên là chúng ta cũ ng có thể lồ ng các if đó lạ i vớ i nhau


đượ c.

VD: Viết chương trình kiểm tra xem điểm có hợ p lệ hay không, nếu
hợ p lệ thì in ra là vớ i điểm đó thì qua môn hay họ c lạ i

python

copy
a = 7

if (a >= 0 and a <= 10):

if (a >= 4):

print('Qua mon')

else:

print('Hoc lai')

else:
print('Diem khong hop le')

# Ket qua: Qua mon

Câu lệnh if-elif-else.

Trong thự c tế thì không phả i lúc nào chúng ta cũ ng có 2 trườ ng hợ p


nếu thì. Mà có đôi lúc tồ n tạ i vô vàn điều kiện khác nhau và để giả i
quyết điều này thì trong Python có cung cấ p thêm co chúng ta mệnh đề
if-elif-else vớ i cú pháp như sau:

python

copy
if condition:

# code

elif condition2:

# code

elif condition3:

# code

else:

#code

Trong đó, thì sau các mệnh đề if và elif sẽ tồ n tạ i các điều


kiện condition tương ứ ng, và nếu như các điều kiện đó đúng thì code ở
trong mệnh đề đó sẽ đượ c thự c hiện.

VD: Mình sẽ giả i quyết lạ i bài toán tính điểm ở trên bằ ng mệnh đề if-
elif-else.

python
copy
a = 9

if (a >= 4 and a <= 10):

print('Qua mon')

elif (a >= 0 and a <4):

print('Hoc lai')

else:

print('Diem khong hop le')

# Ket qua: Qua mon

3, Lời kết.
Trong Python không hỗ trợ cú pháp swtich-case mà thay vào đó bạ n có
thể sử dụ ng kiểu dữ liệu dictionary để giả i quyết.

VD: chuyển đổ i chữ thành số .

python

copy
a = 'hai'

dic = {

'mot': 1,

'hai': 2,

'ba': 3,

print(dic.get(a,'khong ro'))
# Ket Qua: 2

Bài 11: Vòng lặ p trong Python

By VŨ THANH TÀI


28-09-2017 9 phút đọc

Font size  

Phầ n trướ c, chúng ta đã đượ c tìm hiểu về câu lệnh rẽ nhánh trong
python rồ i và các bạ n cũ ng thấ y nó khá đơn giả n đúng không? Phầ n
này chúng ta cũ ng sẽ tìm hiểu về mộ t thứ không thể thiếu trong các
ngôn ngữ lậ p trình đó là vòng lặp.

Mục Lục

 1, Vòng lặp là gì?


 2, Vòng lặp for trong Python.

 3, Vòng lặp while.

 4, Các từ khóa tác động đến vòng lặp.

 5, Lời kết.

1, Vòng lặp là gì?


Vòng lặ p (tiếng anh là loop) là mộ t thuậ t ngữ dùng để diễn tả mộ t hành
độ ng hay mộ t cụ m hành độ ng đượ c lặ p đi lặ p lạ i nhiều lầ n.

VD: Như chúng ta cứ uố ng nướ c xong là lạ i phả i đi tiểu và hành độ ng


đó cứ xả y ra đến khi bạ n die mớ i dừ ng. Thì đó cũ ng có thể coi là mộ t
vòng lặ p :D.

Và trong Python thì nó cung cấ p cho chúng ta 2 dạ ng vòng lặ p chính đó


là:
 for

 while

2, Vòng lặp for trong Python.


Vòng lặ p for ở trong Python có tác dụ ng lặ p các biến dữ liệu
có trong list , tuple hoặ c string,... Sử dụ ng cú pháp như sau:

python

copy
for variable in data:
# code

Trong đó:

 variable là các biến tạm dùng để chứa dữ liệu sau mỗi lần lặp.

 data là một list, tuple hoặc string,... chứa giá trị cần lặp.

 VD: Mình sẽ khai báo 1 string name = "thanhtaivtt" và dùng vòng


lặ p for để lặ p ra từ ng ký tự củ a nó.

python

copy
name = "thanhtaivtt"

for i in name:

print(i)

# ket qua:

# t

# h

# a

# n

# h

# t

# a

# i

# v
# t

# t

Và đương nhiên là các vòng for này cũ ng có thể lồ ng nhau.

VD: Vòng for lồ ng nhau.

python

copy
name = "thanhtaivtt"

for i in range(0,10):

for j in range(i,10):

print(j, end = " ")

print ("")

# Ket qua:

# 0 1 2 3 4 5 6 7 8 9

# 1 2 3 4 5 6 7 8 9

# 2 3 4 5 6 7 8 9

# 3 4 5 6 7 8 9

# 4 5 6 7 8 9

# 5 6 7 8 9

# 6 7 8 9

# 7 8 9

# 8 9

# 9
Chú thích: ở đây mình có sử dụ ng hàm range(a,z) để tạ o ra các con số
từ a -> z, ở các phầ n sau mình sẽ nó rõ hơn về hàm này nhé! giờ các
bạ n cứ hiểu nó đơn giả n như kia là đượ c rồ i à

3, Vòng lặp while.


Vòng lặ p while trong Python dùng để lặ p các dữ liệu mà giá trị ngừ ng
có củ a nó là chưa biết trướ c.

Cú pháp sử dụng:

python

copy
while condition:

# code

Trong đó, condition là điều kiện quyết định vòng lặ p while có đượ c


chạ y hay không. Nếu condition trả về giá trị là True thì vòng
lặ p while mớ i đượ c thự c thi, và ngượ c lạ i thì nó sẽ không thự c thi
nếu condition trả về False.

VD: Mình sẽ viết mộ t vòng lặ p while in ra dãy số từ 1 đến 10.

python

copy
i = 1;

while(i <= 10):

print(i)

i += 1
Đố i vớ i vòng lặ p while này thì chúng ta cũ ng có thể lồ ng nó lạ i vớ i
nhau đượ c.

VD: Lồ ng 2 vòng lặ p while.

python

copy
i = 1

while(i <= 10):

j = 1

while (j <= 10 - i):

print(j, end = " ")

j += 1

print("")

i += 1

# ket qua:

# 1 2 3 4 5 6 7 8 9

# 1 2 3 4 5 6 7 8

# 1 2 3 4 5 6 7

# 1 2 3 4 5 6

# 1 2 3 4 5

# 1 2 3 4

# 1 2 3
# 1 2

# 1

4, Các từ khóa tác động đến vòng lặp.


Thông thườ ng trong mộ t số trườ ng hợ p vòng lặ p củ a chúng ta sẽ có thể
không cầ n thự c thi code trong mộ t số vòng lặ p cụ thể hay là cầ n nhả y
lầ n vòng lặ p đó và thự c thi các lầ n lặ p tiếp theo, và để làm đượ c điều
đó thì trong Python có hỗ trợ chúng ta 2 keyword để tác độ ng đến vòng
lặ p là:

 break - break giúp chúng ta chấm dứt vòng lặp tại thời điểm nó xuất hiện

và các code cùng cấp phía sau nó sẽ không được thực thi nữa.

 continue - giúp chúng ta nhảy qua lần lặp hiện tại và chuyển đến lần lặp

tiếp theo, các code cùng cấp phía sau nó cũng sẽ không được thực hiện.

VD: Lệnh break.

python

copy
i = 1

while(i <= 10):

print(i)

if i == 5 :

break
i += 1

# ket qua:

# 1

# 2

# 3

# 4

# 5

VD: Lệnh continue.

python

copy
for i in "thanhtaivtt":

if i == "n":

continue

print(i, end=" ")

# ket qua:

# t h a h t a i v t t

Bài 12: Hàm trong Python


By VŨ THANH TÀI
01-10-2017 14 phút đọc

Font size  

Mục Lục

 1, Hàm là gì?

 2, Khai báo hàm trong Python.

 3, Gọi hàm.

 4, Hàm có kết quả trả về.

 5, Tham số mặc định cho hàm.


 6, Phạm vi của biến trong hàm.

 7, Biến Global.

 8, Truyền vô số tham số vào hàm.

 9, Lời kết.

1, Hàm là gì?
Thự c sự thì về khái niệm củ a hàm thì nó cũ ng rấ t khó có thể giả i thích
đượ c, ở đây mình sẽ tóm lạ i bằ ng mộ t khái niệm đơn giả n như sau:

Hàm là một tập các khối code được viết ra nhằm cho việc tái sử dụng
code.
Nếu như bạ n thấ y khó hiểu, thì bạ n hãy tưở ng tượ ng như bạ n có mộ t
đoạ n code tính tổ ng 2 số chẳ ng hạ n, nếu như ở mộ t vị trí khác bạ n cũ ng
cầ n tính tổ ng 2 số  thì bạ n lạ i phả i viết lạ i đoạ n code đã từ ng viết rồ i =>
như thế sẽ rấ t tố n thờ i gian. Và Khái niệm hàm sinh ra để giả i quyết
vấ n đề đó. Nó giúp cho chúng ta có thể tái sử dụ ng lạ i nhữ ng đoạ n
code có chứ c nă ng giố ng nhau....
2, Khai báo hàm trong Python.
Để khai báo mộ t hàm trong Python thì chúng ta sử dụ ng
keyword def vớ i cú pháp như sau:

python

copy
def ten_ham(param...):

#code
Trong đó:

 ten_ham là tên của hàm mà bạn muốn đặt. Lưu ý: Tên hàm không được bắt

đầu bằng số và không được chứa các ký tự đặc biệt trừ ký tự _

 param... là các tham số bạn muốn truyền vào hàm, nếu không có tham số

thì để trống trường này.

VD1: Mình sẽ khai báo mộ t hàm in ra chữ "Welcome to


toidicode.com!".

python

copy
def say():

print("Welcome to toidicode.com")

VD2: Mình sẽ khai báo mộ t hàm tính tổ ng củ a 2 số bấ t kỳ do ngườ i


dùng truyền vào.

python

copy
def sum(a, b):

print("sum = " + str(a + b))

Trong ví dụ này a, b sẽ là tham số mà chúng ta truyền vào khi gọ i hàm.

3, Gọi hàm.
Để gọ i mộ t hàm đã đượ c khai báo rồ i, thì chúng ta sử dụ ng cú pháp
sau:
python

copy
ten_ham()

#hoặc

ten_ham(param...)

Trong đó:

 ten_ham là tên của hàm là chúng ta muốn gọi.

 param... là các tham số chúng ta muốn truyền vào trong hàm.

VD3: Mình sẽ gọ i hàm say ở trong VD1.

python

copy
def say():

print("Welcome to toidicode.com")

say()

# Ket qua: Welcome to toidicode.com

VD4: Mình sẽ gọ i hàm sum ở trong VD2.

python

copy
def sum(a, b):

print("sum = " + str(a + b))

# tinh tong 2 so 4,5


sum(4, 5)

# Ket qua: sum = 9

# tinh tong 2 so 3,7

sum(3, 7)

# Ket qua sum = 10

4, Hàm có kết quả trả về.


Trong trườ ng hợ p bạ n muố n sử dụ ng kết quả củ a hàm vừ a tính để thự c
hiện các mụ c đíc khác. Thì bạ n chỉ cầ n thêm keyword return trướ c kết
quả bạ n muố n trả về.

VD: Mình sẽ khai báo lạ i hàm sum ở  VD2 thành hàm có kết quả trả về.

python

copy
def sum(a, b):

return a+ b

Bây giờ khi muố n sử dụ ng kết quả củ a nó thì ta có thể gán nó vào mộ t
biến, hay mộ t đố i tượ ng và sử dụ ng như bình thườ ng.

python

copy
def sum(a, b):

return a+ b
c = sum(4, 5);

print("Tong cua 4 va 5 = " + str(c))

5, Tham số mặc định cho hàm.


Thông thườ ng nếu như chúng ta khai báo hàm mà có tham số truyền
vào, nhưng lúc gọ i hàm chúng ta lạ i không truyền tham số đó vào thì
chương trình sẽ báo lỗ i.

VD: Giả sử mình có hàm tính tổ ng như sau.

python

copy
def sum(a, b):

return a + b

Và mình sẽ cố tình gọ i mà không truyền tham số vào hàm.


Nó đã báo lỗ i là chúng ta đang thiếu 2 giá trị, bắ t buộ c phả i truyền vào
hàm....

Và để hạ n chế trườ ng hợ p này thì trong Python cũ ng cung cấ p cho


chúng ta thiết lậ p luôn giá trị mặ c định củ a tham số khi khai báo hàm.
Bằ ng cách sử dụ ng dấ u = vớ i cú pháp như sau:

python

copy
def ten_ham(param = defaultValue):

# code

Trong đó:

 defaultValue là giá trị mặc định của tham số đó mà bạn muốn gán.
VD: Bây giờ mình sẽ lạ i hàm sum ở trên và gọ i khi không truyền giá trị
và có truyền giá trị.

6, Phạm vi của biến trong hàm.


Khi mộ t biến đượ c khai báo ở trong hàm thì nó chỉ có thể đượ c sử
dụ ng ở trong hàm đó thôi.

VD:

python

copy
def say_hello():

a = "Hello"

print(a)

print(a)

# Lỗi: name 'a' is not defined

Và chúng ta cũ ng không thể nào thay đổ i giá trị củ a biến (biến bình


thườ ng) mà tác độ ng ra ngoài hàm đượ c.
VD:

python

copy
a = "Hello Guy!"

def say(a):

a = "Toidicode.com"

print(a)

say(a)

# KQ: Toidicode.com

print(a)

# KQ: Hello Guy!

Nhưng nếu như biến mà có kiểu dữ liệu là list thì chúng ta lạ i có thể là


đượ c điều đó.

VD:

python

copy
a = [5, 10, 15]

def change(a):

a[0] = 1000

print(a)
change(a)

# KQ: [1000, 10, 15]

print(a)

# KQ: [1000, 10, 15]

7, Biến Global.
Ngoài nhữ ng cách hoạ t độ ng củ a biến mình đã trình bày ở phầ n 6 ra thì
chúng ta còn có 1 cách nữ a để có thể tác độ ng đến các biến bên ngoài
hàm khi đang ở trong hàm. Đó là sử dụ ng global variable - biến toàn cầ u,
khi mộ t biến là global thì chúng ta có thể gọ i và tác độ ng đến nó từ bấ t
kỳ đâu trong chương trình.

Để khai báo mộ t biến là global thì chúng ta chỉ cầ n thêm


keyword global trướ c tên củ a nó như sau:

python

copy
global tenbien

VD: Mình sẽ thay đổ i giá trị củ a biến khi ở trong hàm.

python

copy
a = "Hello Guy!"

def say():

global a

a = "Toidicode.com"

print(a)
say()

# KQ: Toidicode.com

print(a)

# KQ: Toidicode.com

8, Truyền vô số tham số vào hàm.


Trên thự c tế, không phả i lúc nào chúng ta cũ ng biết đượ c chính xác số
lượ ng biến truyền vào trong hàm. Chính vì thế trong Python có cũ ng
cấ p cho chúng ta khai báo mộ t param đạ i diện cho các biến truyền vào
hàm bằ ng cách thêm dấ u * vào trướ c param đó.

VD: Mình sẽ khai báo hàm get_sum để tính tổ ng các tham số truyền vào
hàm.

python

copy
def get_sum(*num):

tmp = 0

# duyet cac tham so

for i in num:

tmp += i

return tmp

result = get_sum(1, 2, 3, 4, 5)
print(result)

# KQ: 15

Bài 13: Input và Đọ c ghi file trong Python

By VŨ THANH TÀI


02-10-2017 13 phút đọc

Font size  

Ở các bài trướ c chúng ta đã đượ c tìm hiểu về các kiểu dữ liệu, toán tử
cũ ng như cách khai báo hàm,... trong Python rồ i, nhưng ở các bài đó
chủ yếu vẫ n là làm việc vớ i hệ thố ng, dữ liệu có sẵ n. Mà chúng ta chưa
biết cách nhậ n dữ liệu mà ngườ i dùng nhậ p vào trên comandline, và bài
hôm nay chúng ta sẽ tìm hiều về nó.
1, Input.
Trong Python có cung cấ p cho chúng ta hàm input để nhậ n dữ liệu từ
ngườ i dùng nhậ p vào trong commandline. Sử dụ ng vớ i cú pháp như
sau:

input(something)

Trong đó, something là nộ i dung mà bạ n muố n hiển thị trướ c khi ngườ i
dùng nhậ p dữ liệu. Và giá trị mà hàm này trả về chính là giá trị mà
ngườ i dùng nhậ p vào.

VD: Mình sẽ hỏ i tuổ i ngườ i dùng và in ra tuổ i mà ngườ i dùng nhậ p


vào.

print("Hello guy!")

age = input("How old are you? ")

print("age: " + age)

Và đây là ví dụ mình chạ y:

2, Đọc ghi file.


File là mộ t thứ rấ t cầ n thiết trong các dự án, ví dụ như chúng ta cầ n
phả i ghi log ra mộ t file để sau này có thể kiểm soát đượ c.... Và ngôn
ngữ lậ p trình nào cũ ng hỗ trợ chúng ta làm việc vớ i file.
Mở  file.

Để mở  file trong Python chúng ta sử dụ ng hàm open vớ i cú pháp như


sau:

open(filePath, mode, buffer)

Trong đó:

 filePath là đường dẫn đến địa chỉ của file.

 mode là thông số thiết lập chế độ chúng ta mở file được cấp những quyền

gì? Mặc địn mode sẽ bằng r (xem các mode ở dưới).

 buffer là thông số đệm cho file mặc định thì nó sẽ là 0.

Các chế độ mode.

Mode Chú thích

r Chế độ chỉ được phép đọc.

rb Chế độ chỉ được phép đọc nhưng cho định dạn nhị phân.

r+ Chế độ này cho phép đọc và ghi file, con trỏ nó sẽ nằm ở đầu file.

rb+ Chế độ này cho phép đọc và ghi file ở dạng nhị phân, con trỏ sẽ nằm ở đầu file.

Chế độ ghi file, nếu như file không tồn tại thì nó sẽ tạo mới file và ghi nội dung, còn nếu như file đã tồn tạ
w
đè nội dung lên file cũ.

wb Tương tự chế độ w nhưng đối với nhị phân.

w+ Mở file trong chế độ đọc và ghi. còn lại như w.


wb+ Giống chế độ w+ nhưng đối với nhị phân

Mở file trong chế độ ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung, và nếu như file chưa tồn tạ
a
tạo một file mới và ghi nội dung vào đó.

ab Tương tự a nhưng đối với nhị phân.

a+ Mở file trong chế độ đọc và ghi tiếp nội dung, còn lại cơ chế giống chế độ a.

ab+ Tương tự chế độ a+ nhưng đối với nhị phân.

VD: Mình sẽ đọ c file readme.md có cùng cấ p vớ i file index.py củ a


mình.

|-- readme.md

|-- index.py

code file index.py

# index.py

open('readme.md')

Lúc này hàm open sẽ trả về mộ t object chứ a các các phươn thứ c để tác
độ ng đến file.
Đóng file.

Để đóng mộ t file đang đượ c mở , thì chúng ta sử dụ ng phương thứ c


close() vớ i cú pháp như sau:

fileObject.close()

Trong đó, fileObject là đố i tượ ng mà chúng ta thu đượ c khi sử dụ ng


hàm open().
Để đả m bả o quy chế đóng mở và giả i phóng bộ nhớ cho chương trình
thì các bạ n phả i luôn nhớ đố ng file khi kết thúc phiên làm việc.
Đọ c file.

Sau khi đã mở đượ c file ra rồ i, để đọ c đượ c file thì chúng ta sử dụ ng


phương thứ c read vớ i cú pháp:

fileObject.read(length);

Trong đó:

 fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().

 length là dung lượng của dữ liệu mà chúng ta muốn đọc, nếu để trống

tham số này thì nó sẽ đọc hết file hoặc nếu file lớn quá thì nó sẽ đọc đến

khi giới hạn của bộ nhớ cho phép.

VD: Mình sẽ đọ c và xuấ t ra dữ liệu đọ c đượ c trong file readme ở trên.

# mo file

file = open('readme.md')

# doc file

data = file.read();

# dong file

file.close()

# in du lieu doc duoc

print(data)
Ghi file.

Để ghi đượ c file thì bạ n phả i chắ c chắ n là đang mở file ở các chế độ
cho phép ghi. Và sử dụ ng phương thứ c write vớ i cú pháp sau:

fileObject.write(data)

Trong đó:

 fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().

 data là dữ liệu mà chúng ta muốn ghi vào trong file.

VD:  Mình sẽ ghi dữ liệu vào file readme.md

# mo file o che do ghi

file = open('readme.md','w')

# ghi file

file.write('Vu Thanh Tai - toidicode.com')

# dong file

file.close()

Các thuộ c tính trong file.

Nếu như bạ n cầ n biết thêm các thông số củ a file hiện tạ i thì bạ n có thể
tham khả o thêm các thuộ c tính trong object file mà Python đã cung cấ p
sẵ n cho chúng ta. Các thuộ c tính như sau:

Trong các trườ ng hợ p dướ i đây: giả sử  file là kết quả thu đượ c từ
hàm open().

Thuộc tính Chú thích


file.name Trả về tên của file đang được mở.

file.mode Trả về chế độ mode của file đang được mở.

file.closed Trả về true nếu file đã được đóng, và false nếu file chưa đóng.

VD: Mình sẽ in ra thông số củ a file readme.md ở trên.

file = open('readme.md','w')

print( file.name )

# readme

print( file.mode )

# w

print( file.closed )

# False

file.close()

Bài 14: Modules trong Python


By VŨ THANH TÀI
03-10-2017 15 phút đọc

Font size  

Nếu như các bạ n đã từ ng tìm hiểu qua mộ t ngôn ngữ lậ p trình nào khác
thì chắ c hẳ n các bạ n cũ ng biết các ngôn ngữ đó nó đều có cơ chế load
file và sử dụ ng lạ i. Ví dụ như PHP chúng ta sử dụ ng include,require,...
Và hôm nay chúng ta hãy cùng tìm hiểu xem trong Python thì cách thứ c
đó gọ i là gì nhé!

Mục Lục

 1, Modules là gì?

 2, Modules trong Python.

o Import
o from - import

o Build module

o Định danh cho modules

 3, Chú ý.

 4, import module trong thư mục.

 5, Lời kết.

1, Modules là gì?
Modules là cách mà chúng ta phân hóa chương trình ra các nhánh nhỏ
cho dễ quả n lý và gọ i lạ i chúng khi nào cầ n, như thế chương trình củ a
chúng ta sẽ có tính tái sử dụ ng, bả o trì cao.

VD: Như mô hình MVC cũ ng đượ c coi như mộ t cách modules hóa hệ
thố ng.
2, Modules trong Python.
Import

Để import mộ t module có vào trong file hiện tạ i thì mọ i ngườ i sử dụ ng


từ khóa import vớ i cú pháp như sau:

python

copy
import module1, module2,...
Trong đó: module1, module2,...  là các modules mà các bạ n muố n import
vào file hiện tạ i.

Để xem danh sách các module mặ c định củ a python mọ i ngườ i click


vào đây.

VD: Mình sẽ import models math và gọ i thử mộ t số phương thứ c trong


module math (xem danh sách các phương thứ c).

python

copy
import math

a = 3.2

# làm tròn lên 1 số

print(math.ceil(a)) # 4

# làm tròn xuống 1 số

print(math.floor(a)) # 3

from - import

Giả sử trong mộ t trườ ng hợ p nào đó khi bạ n không muố n sử dụ ng hết


toàn bộ module mà chỉ muố n sử dụ ng mộ t số thứ trong đó mà thôi thì
sẽ phả i làm sao? Trong trườ ng hợ p này chúng ta sử dụ ng từ
khóa from...import theo cú pháp như sau:

python

copy
from modules import something, something2,...

Trong đó:
 modules là tên của module mà các bạn muốn import.

 something1,somthing2,... là những thứ mà các bạn muốn sử dụng ở

trong modules. Nếu như bạn muốn import tất cả những gì trong modules

có và cho phép thì bạn sử dụng keyword *.

VD: Mình sẽ import mỗ i phương thứ c ceil ở trong module math.

python

copy
from math import ceil

a = 3.2

print(ceil(a))

# kết quả: 4

print(floor(a))

# Kết quả: name 'floor' is not defined

VD: Mình sẽ import tấ t cả mọ i thứ đượ c cho phép từ module math.

python

copy
from math import *

a = 3.2
print(ceil(a))

# kết quả: 4

print(floor(a))

# Kết quả: 3

Build module

Ngoài sử dụ ng các module có sẵ n trong python ra thì chúng ta cũ ng có


thể viết ra các module củ a riêng mình và import nó khi muố n sử dụ ng.

VD: Mình sẽ hướ ng dẫ n mọ i ngườ i build mộ t module đơn giả n.

Đầ u tiên các bạ n tạ o cho mình 2 file main.py và math_plus.py ở cùng cấ p thư


mụ c.

Bây giờ mọ i ngườ i mở file mathplus.py lên và viết cho mình hàm get_sum -


tính tổ ng 2 số nguyên bấ t kỳ do ngườ i dùng truyền vào.

Ai lườ i thì copy nhé!

python

copy
# file math.py

def get_sum (a, b):

return a + b

Tiếp đó khi bạ n muố n sử dụ ng đượ c hàm get_sum này trong file


main.py thì chúng ta chỉ cầ n import nó vào và sử dụ ng thôi.
python

copy
import mathplus

print(mathplus.get_sum(4,7))

# Kết quả: 11

Chú ý: Tên file chứ a code chúng ta muố n import chính là tên modules.

Tương tự vớ i trườ ng hợ p from-import thì mọ i ngườ i tự làm nhé!


Định danh cho modules

Nếu như trong trườ ng hợ p modules củ a chúng ta rấ t khó nhớ hay dài
hay vì mộ t lý do nào khác mà bạ n không muố n gọ i module như thế thì
vớ i Python bạ n cũ ng có thể gán định danh mớ i cho modules khi import
chúng bằ ng cách sử dụ ng keyword as. vớ i cú pháp như sau:

python

copy
import modules as newname

# hoặc đối với from import

from modules import something as newname

Trong đó:

 modules là các modules mà chúng ta muốn import.

 newname là định danh mới cho module đó.


VD: Mình sẽ import mathplus modules và gán định danh cho nó thành ma.

python

copy
import mathplus as ma

print(ma.get_sum(4,7))

# Kết quả: 11

Nếu như các bạ n sử dụ ng cú pháp from ... import thì cũ ng dùng tương
tự .

python

copy
from mathplus import get_sum as sum

print(sum(4,7))

# Kết quả: 11

3, Chú ý.
Đố i vớ i trườ ng hợ p các bạ n sử dụ ng from ... import * thì mặ c định
python nó sẽ không import đượ c các đố i tượ ng có tên đượ c bắ t đầ u
bằ ng ký tự _ . Trong trườ ng hợ p này, nếu như bạ n muố n import đượ c
các đố i tượ ng đó thì bạ n sẽ phả i chỉ đích danh các đố i tượ ng đó.

VD: Bây giờ mình sẽ đổ i tên củ a phương


thứ c get_sum trong mathply.py thành _get_sum().

python
copy
# file mathplus.py

def _get_sum (a, b):

return a + b

Bây giờ ở trong file main mình sẽ import mathplus theo cách dùng ký tự
*.

python

copy
from mathplus import *

print(_get_sum(5,7))

# kết quả: name '_get_sum' is not defined

Như các bạ n đã thấ y nó đã báo lỗ i là _get_sum() chưa đượ c định


nghĩa. Bây giờ chúng ta chuyển sang import đích danh _get_sum xem
sao nhé.

python

copy
from mathplus import _get_sum

print(_get_sum(5,7))

# kết quả: 12
Như các bạ n thấ y đó, nó đã ok.

4, import module trong thư mục.


Cũ ng vớ i ví dụ về module mathplus ở phía trên, bây giờ bạ n tạ o thêm 1
thư mụ c có tên là modules hoặ c tên bấ t kỳ và copy file mathplus.py vào
thư mụ c đó. Lúc này cấ u trúc thư mụ c sẽ thành như sau:

text

copy
| modules/mathplus.py

| main.py

Và bạ n thử import module mathplus vào trong main như cũ xem nó có


chạ y không? Chắ c chắ n là không chạ y và nó sẽ trả về lỗ i là "module
mathplus chưa được đặt tên". Điều này xả y ra là do chúng ta chưa thiết
lậ p thư mụ c load modules cho python hiểu.

Mặ c định thì python nó sẽ chỉ load các module hệ thố ng củ a nó và các


module ở cùng cấ p vớ i file hiện tạ i. Nếu như bạ n muố n chỉ cho python
biết là nó cầ n load module ở nhữ ng thư mụ c nào nữ a thì bạ n phả i cấ u
hình ở trong sys.path và để thêm thư mụ c cầ n load thì bạ n sử dụ ng
phương thứ c append() ở trong module sys.path.

VD: Mình sẽ báo có python biết là phả i load thêm thư mụ c modules ở
trong project hiện tạ i, và đồ ng thờ i mình sẽ import luôn thư
mụ c mathplus.py.

python

copy
import os, sys

# lấy ra đường dẫn đến thư mục modules ở trong projetc hiện hành
lib_path = os.path.abspath(os.path.join('modules'))

# thêm thư mục cần load vào trong hệ thống

sys.path.append(lib_path)

# import

from mathplus import get_sum

print(get_sum(1,4));

# kết quả: 5

Bài 15: Packages trong Python

By VŨ THANH TÀI


05-10-2017 9 phút đọc
Font size  

Ở bài trướ c mình đã giớ i thiệu vớ i mọ i ngườ i về khái niệm Module,


các module trong Python và cách tự build module cho riêng mình rồ i.
Nhưng về phầ n cuố i bài mình có nói là nếu như file modules các bạ n để
trong thư mụ c con nằ m trong cấ p vớ i thư mụ c cầ n import modules thì
nó sẽ không sử dụ ng đượ c. Và hôm nay thì mình sẽ giớ i thiệu vớ i các
bạ n cách import như thế mà không cầ n phả i cấ u hình path loader qua
khái niệm package.

Mục Lục

 1, Package là gì?

 2, Build package trong Python.

 3, Import package.

 4, Package chứa package.

 5, Lời kết.

1, Package là gì?
Package trong Python là một thư mục chứa một hoặc nhiều
modules hay các package khác nhau, nó đượ c tạ o ra  nhằ m mụ c đích
phân bố các modules có cùng chứ c nă ng hay mộ t cái gì đó, để dễ quả n
lý source code.

VD: ví dụ mộ t package views thì nó sẽ chứ a các modules liên quan đến
views.
2, Build package trong Python.
Để tạ o ra mộ t package trong python thì mọ i ngườ i chỉ cầ n tạ o ra mộ t
thư mụ c, vớ i tên thư mụ c chính là tên củ a package và trong thư mụ c
này nhấ t định phả i có mộ t file có tên __init__.py. File __init__.py này
nó giố ng như các constructor, và nó sẽ đượ c gọ i ra đầ u tiên khi chúng
ta import package đó.

Nói lý thuyết có vẻ rườ m rà, nên để dễ hiểu hơn thì mọ i ngườ i có thể
tham khả o ví dụ sau.

VD: Đầ u tiên mọ i ngườ i tạ o cho mình mộ t thư mụ c mớ i có cấ u trúc


như sau:

markdown

copy
|demopackage/__init__py

|main.py

Bây giờ mọ i ngườ i mở file __init__.py ra và viết cho mình đoạ n code


sau vào:

python

copy
# __init__.py

print("Duoc in tu file __init__py")

Tiếp đó, ở file main.py các bạ n import package demopackage vào như


sau:

python

copy
# main.py
import demopackage

Sau đó các bạ n chạ y file main.py, sẽ thu đượ c kết quả như sau:

python

copy
Duoc in tu file __init__py

Như vậ y các bạ n đã hiểu về file __init__.py trong package chưa ạ !.


3, Import package.
Để import các package thì các bạ n sử dụ ng cú pháp giố ng như đố i vớ i
modules. Nhưng bây giờ các bạ n sẽ phả i gọ i từ package -> module.

VD: Trong thư mụ c demopackage ở ví dụ trên các bạ n tạ o cho mình file


module.py.

Cấ u trúc thư mụ c:

sql

copy
|--demopackage/

| |--modules.py

| └── __init__py

|--main.py

Và ở trong file modules.py các bạ n tạ o cho mình 2 hàm như sau:

python

copy
# demopackage/modules.py
def say_hello():

print("Hello!")

def say_goodbye():

print("Goodbye!")

Lúc này khi muố n import modules.py vào main.py thì mọ i ngườ i sẽ gọ i


như sau:

python

copy
# main.py

from demopackage.modules import *

# Duoc in tu file __init__py

say_hello()

# Hello!

say_goodbye()

# Goodbye!

hoặ c

python

copy
# main.py
import demopackage.modules

# Duoc in tu file __init__py

demopackage.modules.say_hello()

# Hello!

demopackage.modules.say_goodbye()

# Goodbye!

hoặ c

python

copy
# main.py

import demopackage.modules as modules

# Duoc in tu file __init__py

modules.say_hello()

# Hello!

modules.say_goodbye()

# Goodbye!

4, Package chứa package.


Đố i vớ i package trong Python thì nó cũ ng có thể chứ a 1 hoặ c nhiều
package khác trong nó, và không dướ i hạ n số lầ n chứ a đó nhưng các
bạ n vẫ n phả i luôn tuân thủ quy tắ c củ a 1 package là phả i có
file __init__.py. Tứ c là package a chứ a package b và package b lạ i chưa
package c,...

VD: Cũ ng vớ i thư mụ c trong VD ở phầ n 3 mình sẽ tạ o thêm 1 package


con nằ m trong demopackage có tên là packagechild chứ a
2 file childmodule.py và __init__.py như sau:

Cấ u trúc thư mụ c:

sql

copy
|--demopackage/

| |--modules.py

| |--packagechild/

| |-- childmodule.py

| └── __init__py

| └── __init__py

|--main.py

file childmodules.py:

python

copy
# packagechild/childmodule.py

def say():

print("childmodule.py: Hello")
file __init__.py:

python

copy
# packagechild/__init__.py

print("childpackage __init__.py")

Lúc này ở file main.py các bạ n chỉ cầ n import theo đúng cấ p package.

python

copy
# main.py

from demopackage.packagechild.childmodule import *

# childpackage __init__.py

say()

# childmodule.py: Hello

Bài 16: Exception trong Python


By VŨ THANH TÀI
06-10-2017 17 phút đọc

Font size  

Bấ t kỳ mộ t ngôn ngữ lậ p trình nào cũ ng có phầ n xử lý lỗ i ngoạ i lệ


exception, nó không chỉ giúp cũ ng ta debug mà còn giúp chúng ta tắ t
các thông báo lỗ i không mong muố n củ a trương trình khi nó ở chế độ
production.

Mục Lục

 1, Exception trong Python.

 2, Finally.

 3, Các exception có sẵn trong Python.


 4, Xây dựng một exception riêng.

 5, Lời kết.

1, Exception trong Python.


Giả sử mình có mộ t hàm sum như sau:

python

copy
def sum(a, b):

return a / b

Bây giờ mình sẽ gọ i nó như bình thườ ng

python

copy
print(sum(6,2))

#kết quả: 3

Nhưng trong trườ ng hợ p tham số thứ 2 bây giờ không phả i bằ ng 2 nữ a


mà là bằ ng 0 thì sao nhỉ.

python

copy
print(sum(6, 0))

Và đây là kết quả mình thu đượ c:

python
copy
File ".\main.py", line 3, in <module>

print(sum(6, 0))

File ".\main.py", line 2, in sum

return a / b

ZeroDivisionError: division by zero

Như các bạ n đã thấ y thì chương trình đã báo lỗ i là không thể thự c hiện
phép chia cho 0. Và trong trườ ng hợ p này thì các bạ n có thể hạ n chế lỗ i
bằ ng cách ràng buộ c tham số b sao cho nó khác 0 -> cách này ai cũ ng
biết rồ i.

Nhưng ở phạ m vị bài này mình muố n hướ ng dẫ n mọ i ngườ i mộ t cách


nữ a đó là sử dụ ng exception.

Để sử dụ ng exception trong Python thì các bạ n sử dụ ng lệnh try


except theo cú pháp sau:

python

copy
try:

# code

except exceptionName:

# code

Trong đó: 

 exceptionName là tên của các exception mà bạn muốn bắt và xử lý (xem

các exception ở phần 2).


Nếu khố i lệnh trong try có 1 lỗ i gì đó xả y ra thì chương trình sẽ tìm
đến các except phía dướ i và nếu mộ t except nào thỏ a mãn thì nó sẽ
thự c thi code trong khố i except đó.

VD: Mình sẽ hạ n bắ t lỗ i củ a ví dụ trên bằ ng exception.

Như các bạ n đã thấ y ở dòng báo lỗ i trong ví dụ trên nó có


đoạ n ZeroDivisionError:... thì ở đây nếu như chúng ta không biết hết
các exception trong Python thì có thể dự a vào dòng lỗ i đó và bắ t theo,
trong trườ ng hợ p này exception đượ c gọ i chính là ZeroDivisionError.

python

copy
def sum(a, b):

return a / b

try :

print(sum(6, 0))

except ZeroDivisionError:

print('Co loi xay ra!')

#ket qua: Co loi xay ra!

Và đố i vớ i mỗ i khố i lệnh except thì bạ n cũ ng có thể bắ t nhiều excetion


trên mộ t lầ n khai báo. Bằ ng việc đặ t các exception cách nhau bở mộ t
dấ u ,

VD: Bắ t nhiều exception trên mộ t lầ n khai báo.

python
copy
try :

# code

except (ZeroDivisionError, RuntimeError):

# code

Hoặ c bạ n cũ ng có thể khai báo nhiều except trong mộ t khố i lệnh try


except.

VD: Bắ t nhiều exception.

python

copy
try :

# code

except ZeroDivisionError:

# code

except RuntimeError:

# code

Và đương nhiên bạ n cũ ng có thể lồ ng các khố i try except lạ i vớ i nhau:

VD:

python

copy
try :

# code
except ZeroDivisionError:

try :

# code

except StandardError:

# code

except RuntimeError:

# code

2, Finally.
Nếu như trong khố i lệnh try except bạ n muố n sẽ có 1 đoạ n lệnh chắc
chắn sẽ được thực thi cho dù try đúng hay sai, thì bạ n sẽ phả i khai
báo thêm khố i lệnh finally vào cuố i khố i lệnh try except theo cú pháp
sau:

python

copy
try:

# code

except:

# code

finally:

# code

Finally trong Python thườ ng đượ c dùng để clear data mà trong quá
trình try except tạ o ra.

VD:
python

copy
def sum(a, b):

return a / b

try:

print(sum(6, 0))

except ZeroDivisionError:

print('Co loi xay ra!')

finally:

print('finally duoc goi!')

# Ket qua:

# Co loi xay ra!

# finally duoc goi!

3, Các exception có sẵn trong Python.


Dướ i đây là danh sách các exception mặ c định trong Python.

Exception Name Chú Thích

Exception Đây là lớp cơ sở cho tất cả các exception, nó sẽ xuất hiện khi có bất cứ một lỗi nào xảy ra.

StopIteration Xuất hiện khi phương thức next() của interator không trỏ đến một đối tượng nào.

SystemExit Xuất hiện khi dùng phương thức sys.exit()


StandardError Lớp cơ sở cho tất cả các exception.

ArithmeticError Xuất hiện khi có lỗi tính toán giữa các số với nhau

Xuất hiện khi thực hiện tính toán và giá trị của nó vượt quá ngưỡng giới hạn cho phép của
OverflowError
liệu.

FloatingPointError Xuất hiện khi tính toán float thất bại.

ZeroDivisonError Xuất hiện khi thực hiện phép chia cho 0.

AssertionError Xuất hiện trong trường hợp lệnh assert thất bại.

AttributeError Xuất hiện khi không tồn tại thuộc tính này, hoặc thiếu tham số truyền vào nó.

EOFError Xuất hiện khi không có dữ liệu từ hàm input() hoặc cuối file.

ImportError Xuất hiện khi lệnh import thất bại.

KeyboardInterrupt Xuất hiện khi ngắt trình biên dịch.

LookupError Lớp cơ sở cho tất cả các lỗi về lookup.

IndexError Xuất hiện khi index không tồn tại trong list, string,...

KeyError Xuất hiện khi key không tồn tại trong dictionary.

NameError Xuất hiện khi một biến không tồn tại trong phạm vi bạn gọi nó.

EnvironmentError Xuất hiện khi có bất kỳ một lỗi nào ngoài phạm vị của Python.

IOError Xuất hiện khi xử dụng input/ output thất bại, hoặc  mở file không thành công.

OSError Xuất hiện khi có lỗi từ hệ điều hành.


SyntaxError Xuất hiện khi chương trình có lỗi cú pháp.

IndentationError Xuất hiện khi bạn thụt dòng không đúng.

SystemError Xuất hiện khi trình biên dịch có vấn đề nhưng mà nó lại không tự động exit.

SystemExit Xuất hiện khi trình biên dịch được thoát bởi sys.exit().

Xuất hiện khi thực thi toán tử hoặc hàm mà kiểu dữ liệu bị sai so với kiểu dữ liệu đã định n
TypeError
đầu.

Xuất hiện khi chúng ta build 1 function mà kiểu dữ liệu đúng nhưng khi chúng ta thiết lập ở
ValueError
là khác so với khi truyền vào.

RuntimeError Xuất hiện khi lỗi được sinh ra không thuộc một danh mục nào.

NotImplementedErro Xuất hiện khi một phương thức trừu tượng cần được thực hiện trong lớp kế thừa chứ khôn
r lớp thực thi

Xuất hiện khi chúng ta cố tình truy cập vào một biến trong hàm hoặc phương thức, nhưng
UnboundLocalError
thiết lập giá trị cho nó.

4, Xây dựng một exception riêng.


Do mình chưa giớ i thiệu vớ i mọ i ngườ i kiến thứ c hướ ng đố i tượ ng
trong Python, nên phầ n này nhữ ng ai biết hướ ng đố i tượ ng rồ i thì xem,
còn không thì khi khác xem lạ i cũ ng đượ c :D.

Để tạ o mộ t exception trong Python thì bắ t buộ c exception này phả i kế


thừ a lớ p Exception trong Python, và còn lạ i là bạ n muố n xử lý như thế
nào cũ ng đượ c.

VD: Mình sẽ viết mộ t Exception có tên exceptionDemo.


python

copy
class ExceptionDemo(Exception):

def __init__(self, value):

print("Loi: " + value)

Sau khi đã tạ o ra đượ c exception cho riêng mình rồ i, thì khi thự c hiện
mà bạ n muố n gọ i ra gọ i exception ra bạ n chỉ cầ n sử dụ ng
keyword raise theo cú pháp sau:

python

copy
raise exceptionName

Trong đó, exceptionName là tên củ a exception bạ n muố n gọ i.

VD:

python

copy
class ExceptionDemo(Exception):

def __init__(self, value):

print("Loi: " + value)

def sum(a, b):

if (b == 0):
raise ExceptionDemo('b phai khac 0')

return a / b

sum(6, 0)

Bài 17: Các hàm xử lý chuỗ i trong Python

By VŨ THANH TÀI


01-11-2017 32 phút đọc

Font size  

Ở phầ n đầ u củ a series mình đã giớ i thiệu vớ i mọ i ngườ i về chuỗ i trong


Python rồ i, nhưng Python là mộ t ngôn ngữ khá là linh độ ng và mềm
dẻo nên nó cũ ng đã cung cấ p cho chúng ta rấ t nhiều hàm có sẵ n dùng
để xử lý chuỗ i. Bài viết này mình sẽ liệt kê mộ t số hàm hay dùng và ví
dụ kèm theo cho mọ i ngườ i cùng tham khả o.
Mục Lục

 1, Capitalize().

 2, Center().

 3, Count().

 4, encode().

 5, decode().

 6, endswith().

 7, expandtabs().

 8, find().

 9, index().

 10, isalnum().

 11, isalpha().

 12, isdigit().

 13, islower().
 14, isupper().

 15, isnumeric()

 16, isspace().

 17, istitle().

 18, join().

 19, len().

 20, ljust().

 21, rjust().

 22, lower().

 23, upper().

 24, lstrip().

 25, rstrip().

 26, strip().

 27, rfind().
 28, rindex().

 29, replace().

 30, max().

 31, min().

 32, title().

 33, swapcase().

 34, zfill().

 35, isdecimal().

 36, split().

 37, splitlines().

 38, startswith().

 39, maketrans().

 40, translate().

1, Capitalize().
Hàm này có tác dụ ng in hoa chữ cái đầ u tiên củ a chuỗ i.

VD:

python

copy
string = "toidicode.com"

print(string.capitalize());

# Kết quả: Toidicode.com

2, Center().
Hàm này có tác dụ ng trả về chuỗ i đượ c hiển thị ở giữ a mộ t chuỗ i.

Cú Pháp:

python

copy
string.center(len, char)

Trong đó:

 string là chuỗi các bạn cần chuyển đổi.

 len là số lượng ký tự của chuỗi mới.

 char là ký tự sẽ hiển thị ở 2 bên chuỗi cũ. Mặc định nó sẽ là khoảng trắng.

VD: Nếu khó hiểu thì mờ i mọ i ngườ i cùng xem qua ví dụ sau:

python
copy
string = "toidicode.com"

print(string.center(20));

# Kết quả: Toidicode.com

print(string.center(20, '*'));

# Kết quả:***toidicode.com****

Chú ý: Nếu len nhỏ hơn độ dài chuỗ i cầ n xử lý thì, hàm này sẽ trả về


chuỗ i ban đầ u.
3, Count().
Hàm này có tác dụ ng đếm xem trong chuỗ i có bao nhiêu ký tự cầ n tìm.

Cú Pháp:

python

copy
string.count(sub, start, end)

Trong đó:

 sub là chuỗi các bạn cần tìm kiếm và đếm.

 start là index bắt của chuỗi cần tìm. Mặc định thì strart = 0.

 end là index kết thúc của chuỗi cần tìm.  Mặc định thì end = len() của

chuỗi.
VD: 

python

copy
string = "toidicode.com"

print(string.count('i'));

# Kết quả: 2

print(string.count('i', 3));

# Kết quả: 1

4, encode().
Hàm này có tác dụ ng encode (mã hóa) mộ t chuỗ i.

Cú pháp:

python

copy
string.encode(type, mode)

Trong đó:

 type là kiểu encode của string. Mặc định sẽ là utf-8

 mode là chế độ báo lỗi nếu có khi encode. Python hỗ trợ 6 dạng mode như

sau:
 strict - Chế độ nghiêm ngặt, nó sẽ hiển thị lỗi

dưới UnicodeDecodeError exception. Đây là chế độ mặc định.

 ignore - bỏ qua tất cả các lỗi nếu có.

 replace - nó sẽ thay thế lỗi bằng dấu ?.

 xmlcharrefreplace - chèn tham chiếu XML.

 backslashreplace - Chèn chuỗi \uNNNN.

 namereplace - Chèn chuỗi \N{...}.

VD:

python

copy
string = "toidicode.com"

print(string.encode());

# Kết quả: b'toidicode.com'

5, decode().
Hàm này có tác dụ ng decode (gả i mã) chuỗ i trông Python.

Cú Pháp:

python

copy
string.decode(type, mode)

Về phầ n type và mode thì hoàn toàn giố ng ở encode nhé mọ i ngườ i!

VD:

python

copy
string = b'toidicode.com'

print(string.decode());

# Kết quả: toidicode.com

6, endswith().
Hàm này có tác dụ ng kiểm tra xem chuỗ i hoặ c khoả ng chuỗ i có đượ c
kết thúc bằ ng ký tự nào đó hay không. Nó sẽ trả về True nếu đúng
và False nếu sai.

Cú pháp:

python

copy
string.endswith(str, start, end)

Trong đó:

 str là chuỗi các bạn cần xác thực xem có phải chuỗi kết thúc không.

 strart là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0.

 end là index kết thúc chuỗi cần so sánh.  Mặc định thì end = len().
VD:

python

copy
string = 'toidicode.com'

print(string.endswith('m'));

# Kết quả: True

print(string.endswith('m', 3, 10));

# Kết quả: False

7, expandtabs().
Hàm này có tác dụ ng tìm kiếm thay thế \t bằ ng các ký tự khoả ng trắ ng.

Cú Pháp:

python

copy
string.expandtabs(len)

Trong đó: len là số lượ ng khoả ng trắ ng mà bạ n muố n thay thế cho mộ t
\t. Mặ c định thì len = 8.

VD:

python

copy
string = 'toidicode.com\thoc lap trinh'

print(string.expandtabs());

# Kết quả: toidicode.com hoc lap trinh

8, find().
Hàm này có tác dụ ng tìm kiếm mộ t chuỗ i trong mộ t chuỗ i hoặ c khoả ng
chuỗ i. Nó sẽ trả về là vị trí bắ t đầ u củ a chuỗ i tìm đượ c trong chuỗ i nếu
tìm thấ y và nếu không tìm thấ y nó sẽ trả về  -1.

Cú pháp:

sql

copy
string.find(str, start, end)

Trong đó:

 str là chuỗi các bạn cần xác thực xem có phải chuỗi kết thúc không.

 strart là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0.

 end là index kết thúc chuỗi cần so sánh.  Mặc định thì end = len().

VD:

python

copy
string = 'toidicode.com'
print(string.find('di'));

# Kết quả: 3

9, index().
Hàm này tương tự như hàm find() chỉ khác duy nhấ t là nếu như không
tìm thấ y thì hàm này sẽ gọ i exception.

VD:

python

copy
string = 'toidicode.com'

print(string.index('vuthanhtai'));

# Kết quả: ValueError: substring not found

10, isalnum().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là chứ a duy nhấ t
các ký tự chữ hoặ c chuỗ i hay không? Nó sẽ trả về True nếu chuỗ i chỉ
chứ a các ký tự chữ hoặ c số . Và ngượ c lạ i nó sẽ trả về False nếu chuỗ i
chứ a ký tự khác chuỗ i và số .

VD:

python

copy
string = 'toidicode'
print(string.isalnum());

# Kết quả: True

string = 'toidicode.com'

print(string.isalnum());

# Kết quả: False

11, isalpha().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là chứ a duy nhấ t
các ký tự chữ hay không? Nó sẽ trả về True nếu chuỗ i này chỉ chứ a duy
các ký tự chữ trong bả ng chữ cái, và sẽ trả về False nếu nó chứ a số
hoặ c ký tự đặ c biệt khác.

VD:

python

copy
string = 'toidicode96'

print(string.isalpha());

# Kết quả: False

string = 'toidicodecom'

print(string.isalpha());
# Kết quả: True

12, isdigit().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là chứ a duy nhấ t
các chữ số hay không? Nó sẽ trả về True nếu đúng và False nếu sai.

VD:

python

copy
string = 'toidicode96'

print(string.isdigit());

# Kết quả: False

string = '12051996'

print(string.isdigit());

# Kết quả: True

13, islower().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là in thườ ng hay
không? Nó sẽ trả về True nếu đúng và False nếu sai.

VD:

python

copy
string = 'toidicode.com'

print(string.islower());

# Kết quả: True

string = '12051996'

print(string.islower());

# Kết quả: False

string = '9toidicode.com6'

print(string.islower());

# Kết quả: True

string = '9Toidicode.com6'

print(string.islower());

# Kết quả: False

14, isupper().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là in Hoa hay
không? Nó sẽ trả về True nếu đúng và False nếu sai.

VD:

python

copy
string = 'TOIDICODE.COM'

print(string.isupper());

# Kết quả: True

string = '12051996'

print(string.isupper());

# Kết quả: False

string = '9TOIDICODE.COM6'

print(string.isupper());

# Kết quả: True

string = '9Toidicode.com6'

print(string.isupper());

# Kết quả: False

15, isnumeric()
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i chỉ chứ a duy nhấ t
các ký tự số hay không? Nó sẽ trả về True nếu đúng và False nếu sai.

VD:

python

copy
string = 'TOIDICODE.COM'

print(string.isnumeric());

# Kết quả: False

string = '12051996'

print(string.isnumeric());

# Kết quả: True

string = '9TOIDICODE.COM6'

print(string.isnumeric());

# Kết quả: False

string = '9Toidicode.com6'

print(string.isnumeric());

# Kết quả: False

16, isspace().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i chỉ chứ a duy nhấ t
các ký tự khoả ng trắ ng không? Nó sẽ trả về True nếu đúng và False nếu
sai.

VD:

python
copy
string = ' '

print (string.isspace());

# Kết quả: True

string = 'Vu Thanh Tai'

print (string.isspace());

# Kết quả: False

17, istitle().
Hàm này có tác dụ ng kiểm tra xem mộ t chuỗ i có phả i là title hay không,
chuỗ i title là chuỗ i có các chữ cái đầ u đều đượ c in hoa. Nó sẽ trả
về True nếu đúng và ngượ c lạ i False nếu sai.

VD:

python

copy
string = 'vu thanh Tai'

print(string.istitle())

# Kết quả: False

string = 'Vu Thanh Tai'

print(string.istitle())

# Kết quả: True


18, join().
Hàm này có tác dụ ng join squence bở i string.

Cú pháp:

python

copy
string.join(squence)

Trong đó: squence là string, list,... mà bạ n cầ n join lạ i vớ i nhau bở i


chuỗ i string. 

VD:

python

copy
string_one = ' '

string_two = 'TAI'

print(string_one.join(string_two))

# Kết quả: T A I

string_one = '-'

string_two = ['T','D','C',]

print(string_one.join(string_two))

# Kết quả: T-D-C

19, len().
Hàm này có tác dụ ng trả về độ dài củ a chuỗ i.

VD:

python

copy
string = "Vu Thanh Tai"

print(len(string))

# Kết quả: 12

20, ljust().
Hàm này có tác dụ ng trả về mộ t chuỗ i vớ i độ dài length đượ c xác định,
nếu chuỗ i đượ c chọ n nhỏ hơn width thì nó sẽ sử dụ ng char để bù chỗ
thiếu đó về phía bên phả i củ a chuỗ i.

python

copy
string.ljust(length, char)

Trong đó:

 length là độ dài của chuỗi mới cần in ra.

 char là ký tự sẽ bù vào chuỗi mới nếu chuỗi cũ không đủ length. Mặc định

thì char = khoảng trắng.

VD:

python
copy
string = "Vu Thanh Tai"

print(string.ljust(17, "-"))

# Kết quả: Vu Thanh Tai-----

21, rjust().
Tương tự hàm ljust() nhưng chỉ có điều là nó sẽ bù về phía bên trái củ a
chuỗ i.

VD:

python

copy
string = "Vu Thanh Tai"

print(string.rjust(17, "-"))

# Kết quả: -----Vu Thanh Tai

22, lower().
Hàm này có tác dụ ng chuyển đổ i chuỗ i về dạ ng in thườ ng.

VD:

python

copy
string = "Vu Thanh Tai"
print(string.lower())

# Kết quả: vu thanh tai

23, upper().
Hàm này có tác dụ ng chuyển đổ i chuỗ i sang dạ ng in hoa.

VD:

python

copy
string = "Vu Thanh Tai"

print(string.upper())

# Kết quả: VU THANH TAI

24, lstrip().
Hàm này có tác dụ ng loạ i bỏ đi các ký tự  char ở phía đầ u củ a chuỗ i.

Cú Pháp:

python

copy
string.lstrip(char)

Trong đó: char là ký tự bạ n muố n loạ i bỏ . Mặ c định thì char sẽ bằ ng


khoả ng trắ ng (white space).

VD:
python

copy
string = " Vu Thanh Tai"

print(string.lstrip())

# Kết quả: Vu Thanh Tai

string = "----Vu Thanh Tai"

print(string.lstrip('-'))

# Kết quả: Vu Thanh Tai

25, rstrip().
Tương tự như lstrip(), chỉ khác là rstrip nó sẽ loạ i bỏ  char ở  phầ n cuố i
củ a chuỗ i.

VD:

python

copy
string = "Vu Thanh Tai "

print(string.rstrip())

# Kết quả: Vu Thanh Tai


string = "Vu Thanh Tai----"

print(string.rstrip('-'))

# Kết quả: Vu Thanh Tai

26, strip().
Hàm này là sự kết hợ p củ a lstrip() và rstrip(). Nó sẽ lạ i bỏ các ký tự
char ở cả hai đầ u củ a chuỗ i.

VD:

python

copy
string = " Vu Thanh Tai "

print(string.strip())

# Kết quả: Vu Thanh Tai

string = "----Vu Thanh Tai----"

print(string.strip('-'))

# Kết quả: Vu Thanh Tai

27, rfind().
Tương tự như hàm find(), nhưng hàm này nó sẽ trả về index củ a chuỗ i
cuố i cùng tìm đượ c trong chuỗ i. Cú pháp sử dụ ng tương tự hàm find().
VD:

python

copy
string = "Vu Thanh Tai"

print(string.rfind('T'))

# Kết quả: 9

28, rindex().
Tương tự như hàm index(),nhưng hàm này nó sẽ trả về index củ a chuỗ i
cuố i cùng tìm đượ c trong chuỗ i. Cú pháp sử dụ ng tương tự hàm
index().

VD:

csharp

copy
string = "Vu Thanh Tai"

print(string.rindex('T'))

# Kết quả: 9

29, replace().
Hàm này có tác dụ ng tìm kiếm và thay thế chuỗ i tìm đượ c bằ ng chuỗ i
mớ i.
Cú Pháp:

python

copy
string.replace(old,new,max)

Trong đó:

 old là chuỗi mà bạn cần tìm kiếm trong string.

 new là chuỗi mà bạn cần thay thế cho chuỗi old tìm được.

 max là số lượng từ có thể thay thế tối đa.

VD: 

python

copy
string = "Chao *!"

print(string.replace('*', 'Tai'))

# Kết quả: Chao Tai!

string = "A A A"

print(string.replace('A', 'Tai', 2))

# Kết quả: Tai Tai A


30, max().
Hàm này trả về chữ cái có độ sắ p xếp cuố i cùng theo bả ng chữ cái
alphabet nằ m trong chuỗ i.

VD:

python

copy
string = "Vu Thanh Tai"

print(max(string))

# Kết quả: u

31, min().
Hàm này trả về chữ cái có độ sắ p xếp đầ u tiên theo bả ng chữ cái
alphabet nằ m trong chuỗ i.

VD:

python

copy
string = "vuthanhtai"

print(min(string))

# Kết quả: a

32, title().
Hàm này có tác dụ ng chuyển đổ i chuỗ i sang kiểu title (xem ở trên).
VD:

python

copy
string = "vu thanh tai"

print(string.title())

# Kết quả: Vu Thanh Tai

33, swapcase().
Hàm này có tác dụ ng chuyển đổ i chuỗ i sang dạ ng nghịch đả o củ a nó
(nghịch đả o ở đây là hoa - thườ ng).

VD:

python

copy
string = "vu thanh tai"

print(string.swapcase())

# Kết quả: VU THANH TAI

string = "Vu Thanh Tai"

print(string.swapcase())

# Kết quả: vU tHANH tAI


34, zfill().
Hàm này có tác dụ ng như hàm ljust() , nhưng nó sẽ chỉ thêm đượ c các
ký tự zero (số 0) và trướ c chuỗ i thôi.

VD:

python

copy
string = "vu thanh tai"

print(string.zfill(17))

# Kết quả: 00000vu thanh tai

35, isdecimal().
Hàm này có tác dụ ng gần như hàm isdigit(), nó sẽ trả về True nếu
chuỗ i cầ n kiểm tra chỉ chứ a các số thậ p phân, và ngượ c lạ i....

VD:

python

copy
string = "Vu Thanh Tai 96"

print(string.isdecimal())

# Kết quả: False


string = "12051996"

print(string.isdecimal())

# Kết quả: True

36, split().
Hàm này có tác dụ ng tác chuỗ i thành mả ng bở i các char.

Cú Pháp:

python

copy
string.split(char, max)

Trong đó:

 char là ký tự các bạn tìm và tách chuỗi bởi nó. Mặc định thì char = khoảng

trắng.

 max là số lượng chuỗi tách tối đa.

VD: 

python

copy
string = "Vu Thanh Tai"

print(string.split())
# Kết quả: ['Vu', 'Thanh', 'Tai']

string = "Vu Thanh Tai"

print(string.split('a'))

# Kết quả: ['Vu Th', 'nh T', 'i']

string = "Vu Thanh Tai"

print(string.split(' ', 1))

# Kết quả: ['Vu', 'Thanh Tai']

37, splitlines().
Hàm này sẽ tách chuỗ i bở i các ký tự \n.

Cú pháp:

python

copy
string.splitlines(max)

Trong đó: max là số lầ n có thể cắ t tố i đa.

VD:

python

copy
string = "Vu\nThanh\nTai"

print(string.splitlines())

# Kết quả: ['Vu', 'Thanh', 'Tai']

38, startswith().
Hàm này có tác dụ ng kiểm tra xem chuỗ i hoặ c khoả ng chuỗ i có đượ c
bắ t đầ u bằ ng ký tự nào đó hay không. Nó sẽ trả về True nếu đúng
và False nếu sai.

Cú pháp:

python

copy
string.startswith(str, start, end)

Trong đó:

 str là chuỗi các bạn cần xác thực xem có phải chuỗi bắt đầu không.

 strart là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0.

 end là index kết thúc chuỗi cần so sánh.  Mặc định thì end = len().

VD:

python

copy
string = 'toidicode.com'
print(string.startswith('t'));

# Kết quả: True

print(string.startswith('m', 3, 10));

# Kết quả: False

39, maketrans().
Hàm này có tác dụ ng tạ o ra các translation cho chuỗ i. Dùng kết hợ p vớ i
phương thứ c translate().

Cú Pháp:

python

copy
string.maketrans(in, out)

Trong đó:

 in là chuỗi các ký tự các bạn cần tìm.

 out là chuỗi chứa các ký tự các bạn cần thay thế.

40, translate().
Hàm này có tác dụ ng thự c thi việc dịch chuỗ i. Dùng kết hợ p vớ i
phương thứ c makestrans().

VD:

python

copy
inputs = "abcdefghijklmnopqrstuxyz";

outputs = "ABCDEFGHIJKLMNOPQRSTUXYZ";

string = "Vu Thanh Tai";

trans = string.maketrans(inputs, outputs)

print(string.translate(trans))

# Kết quả: VU THANH TAI

Bài 18: Các hàm xử lý list trong Python

By VŨ THANH TÀI


03-11-2017 15 phút đọc

Font size  
Phầ n trướ c mình đã giớ i thiệu vớ i mọ i ngườ i các hàm xử lý chuỗ i hay
dùng trong Python, phầ n này chúng ta tiếp tụ c chuyển sang tìm hiểu về
mộ t số  hàm xử lý list hay được sử dụng trong Python, và xem đố i
vớ i Python nó có hỗ trợ chúng ta xử lý đa dạ ng không nhé!

Mục Lục

 1, list().

 2, len().

 3, max().

 4, min().

 5, append().

 6, extend().

 7, count().

 8, index().

 9, insert().

 10, reverse().

 11, remove().
 12, pop().

 13, sort().

 14, clear().

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:

python

copy
list(data)

Trong đó, data là biến chứ a tuple bạ n cầ n chuyển đổ i.

VD:

python

copy
string = "Vu Thanh Tai"

print(list(string))

# Ket Qua: ['V', 'u', ' ', 'T', 'h', 'a', 'n', 'h', ' ', 'T', 'a', 'i']

tup = ('A', 'B', 'C')

print(list(tup))
# Ket Qua: ['A', 'B', 'C']

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

Cú pháp:

python

copy
len(list)

Trong đó, list là list mà các bạ n cầ n đếm.

VD:

python

copy
list = ['A', 'B', 'C']

print(len(list))

#Kết quả: 3

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:

python
copy
max(list)

Trong đó, list là list mà các bạ n cầ n kiểm tra.

VD:

python

copy
list = ['A', 'B', 'C']

print(max(list))

#Kết quả: C

list = ['1', '3', '2']

print(max(list))

#Kết quả: 3

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:

python

copy
min(list)

Trong đó, list là list mà các bạ n cầ n kiểm tra.


VD:

python

copy
list = ['A', 'B', 'C']

print(min(list))

#Kết quả: A

list = ['1', '3', '2']

print(max(list))

#Kết quả: 1

5, append().
Phương thứ c này có tác dụ ng thêm phầ n vào cuố i củ a mộ t list.

Cú pháp:

python

copy
mylist.append(obj)

Trong đó:

 mylist là list mà các bạn cần thêm phần tử.

 obj là phần tử mà bạn muốn thêm vào mylist.

VD: 
python

copy
list = ['A', 'B', 'C']

list.append('D')

print(list)

# Kết quả: ['A', 'B', 'C', 'D']

list.append(('E', 'F'))

print(list)

# Kết quả: ['A', 'B', 'C', 'D', ('E', 'F')]

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.

Cú pháp:

python

copy
list1.extend(list2)

Trong đó: 

 list1 là list mà bạn muốn kế thừa từ một list khác (ở đây là list2).

 list2 là list được sử dụng để cho list khác kết thừa (ở đây là list1).
VD:

python

copy
list = ['A', 'B', 'C']

list.extend('D')

print(list)

# Kết quả: ['A', 'B', 'C', 'D']

list.extend(('E', 'F'))

print(list)

# Kết quả: ['A', 'B', 'C', 'D', 'E', 'F']

Lưu ý: Ở  đây mình đã cố tình để ví dụ củ a phương


thứ c append() và extend() là giố ng nhau để cho các bạ n thấ y đượ c sự khác
biệt giữ a 2 phương thứ c này (xem kỹ nhé! không nhậ n ra đượ c thì
comment mình sẽ trả lờ i :D).
7, count().
Phương thứ c này 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:

python

copy
mylist.count(val)
Trong đó:

 mylist là list mà các bạn cần kiểm tra.

 val là phần tử mà bạn muốn tìm và đếm trong list mylist.

VD:

python

copy
list = ['A', 'B', 'C']

print(list.count('A'))

# Kết quả: 1

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:

python

copy
mylist.index(val)

Trong đó:

 mylist là list mà các bạn cần kiểm tra.

 val là phần tử mà bạn muốn tìm trong list mylist.


VD: 

python

copy
list = ['A', 'B', 'C']

print(list.index('B'))

# Kết quả: 1

print(list.index('D'))

# Kết quả: ValueError: 'D' is not in list

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:

python

copy
mylist.insert(index, val)

Trong đó:

 mylist là list mà các bạn cần thêm.

 index là vị trí mà 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 mylist.


VD: 

python

copy
list = ['A', 'B', 'C']

list.insert(0, 'Z')

print(list)

# Kết quả: ['Z', 'A', 'B', 'C']

list.insert(2, 'D')

print(list)

# Kết quả: ['Z', 'A', 'D', 'B', 'C']

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:

python

copy
mylist.reverse()

Trong đó, mylist là list mà các bạ n muố n đả o ngượ c.

VD:
python

copy
list = ['A', 'B', 'C']

list.reverse()

print(list)

# Kết quả: ['C', 'B', 'A']

11, remove().
Phương thứ c này có tác dụ ng xóa phầ n tử khỏ i list.

Cú Pháp:

python

copy
mylist.remove(val)

Trong đó:

 mylist là list mà các bạn cần xóa phần tử.

 val là phần tử mà bạn muốn muốn xóa trong list mylist.

VD: 

python

copy
list = ['A', 'B', 'C']
list.remove('C')

print(list)

# Kết quả: ['A', 'B']

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:

python

copy
mylist.pop(index)

Trong đó:

 mylist là list mà các bạn cần xóa phần tử.

 index là index của phần tử mà bạn muốn muốn xóa trong list mylist. Mặc

định thì index = mylist[-1] (phần tử cuối cùng trong list).

VD:

python

copy
list = ['A', 'B', 'C', 'D', 'E']
list.pop()

print(list)

# Kết quả: ['A', 'B', 'C', 'D']

list.pop(2)

print(list)

# Kết quả: ['A', 'B', 'D']

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 mộ t
thứ tự xác định.

Cú pháp:

python

copy
mylist.sort(reverse, key)

Trong đó:

 mylist là list mà các bạn 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.

 key là callback def để xử lý list hoặc là một lamda function (thường được

dùng để sắp xếp các list tuple hoặc dictionary).


VD: 

python

copy
list = ['A', 'C', 'B', 'E', 'D']

list.sort()

print(list)

# Kết quả: ['A', 'B', 'C', 'D', 'E']

list.sort(reverse=True)

print(list)

# Kết quả: ['E', 'D', 'C', 'B', 'A']

def custom_sort(elem):

return elem[1]

list = [(1, 2), (5, 7), (7, 100), (4, 4)]

list.sort(key=custom_sort)

print(list)

# Kết quả: [(1, 2), (4, 4), (5, 7), (7, 100)]

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:

python

copy
mylist.clear()

Trong đó,  mylist là list mà bạ n muố n xóa bỏ hết phầ n tử .

VD:

python

copy
list = ['A', 'C', 'B', 'E', 'D']

list.clear()

print(list)

# Kết quả: []

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


trong Python
By VŨ THANH TÀI
15-11-2017 14 phút đọc

Font size  

Ở  bài thứ 5, mình đã giớ i thiệu vớ i mọ i ngườ i về kiểu dữ liệu số


(number) trong Python rồ i, nhưng ở bài đó mình mớ i chỉ giớ i thiệu khá
basic về nó. Bài này mình sẽ tổ ng hợ p lạ i mộ t số  hàm xử lý số học
trong Python cụ thể hơn thì chính là tìm hiểu về module math trong
Python cho mọ i ngườ i cùng tham khả o!

Mục Lục

 1, abs().

 2, fabs().

 3, ceil().
 4, exp().

 5, floor().

 6, log().

 7, log10().

 8, max().

 9, min().

 10, modf().

 11, pow().

 12, round().

 13, sqrt().

 14, acos().

 15, cos().

 16, asin().

 17, sin().
 18, atan() - tan().

 19, radians().

 20, Lời kết.

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.

Cú pháp:

python

copy
abs(number)

Trong đó, number là số mà các bạ n muố n chuyển đổ i.

VD:

python

copy
number = -5

print(abs(number))

# Kết quả: 5

number = -19.6
print(abs(number))

# Kết quả: 19.6

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:

python

copy
math.fabs(number)

Trong đó, number là số mà các bạ n muố n chuyển đổ i.

VD:

python

copy
import math

number = -5

print(math.fabs(number))

# Kết quả: 5

number = -19.6
print(math.fabs(number))

# Kết quả: 19.6

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:

python

copy
math.ceil(number)

Trong đó, number là số mà các bạ n muố n chuyển đổ i.

VD:

python

copy
import math

number = 5.2

print(math.ceil(number))

# Kết quả: 6

number = 19.6

print(math.ceil(number))
# Kết quả: 20

number = -19.6

print(math.ceil(number))

# Kết quả: -19

4, exp().
Hàm này có tác dụ ng trả về kết quả e , trong đó x là số mà các bạ n cầ n
x

tính.

VD:

python

copy
import math

number = 5

print(math.exp(number))

# Kết quả: 148.4131591025766

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:

python

copy
import math

number = 5.3

print(math.floor(number))

# Kết quả: 5

number = 19.6

print(math.floor(number))

# Kết quả: 19

number = -19.6

print(math.floor(number))

# Kết quả: -20

6, log().
Hàm này sẽ trả về kết quả  logarithm x, vớ i x là số cầ n chuyển và x > 0.

VD:

python

copy
import math

number = 5.3
print(math.log(number))

# Kết quả: 1.667706820558076

number = 19.6

print(math.log(number))

# Kết quả: 2.975529566236472

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

VD:

python

copy
import math

number = 5.3

print(math.log10(number))

# Kết quả: 0.724275869600789

number = 19.6

print(math.log10(number))

# Kết quả: 1.2922560713564761

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:

python

copy
x, y = 5, 9

print(max(x, y))

# Kết quả: 9

x, y, z = 5, 1, 3

print(max(x, y, z))

# Kết quả: 5

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:

python

copy
x, y = 5, 9

print(min(x, y))
# Kết quả: 5

x, y, z = 5, 1, 3

print(min(x, y, z))

# Kết quả: 1

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:

python

copy
import math

x = 5.278

print(math.modf(x))

# Kết quả: (0.2779999999999996, 5.0)

x = -102.69874

print(math.modf(x))

# Kết quả: (-0.6987400000000008, -102.0)


11, pow().
Hàm này có tác dụ ng trả về kết quả củ a phép x , vớ i x là tham số thứ
y

nhấ t, y là tham số thứ 2.

VD:

python

copy
import math

x, y = 5, 2

print(math.pow(x, y))

# Kết quả: 25.0

x, y = 10, 5

print(math.pow(x, y))

# Kết quả: 100000.00

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:

python
copy
math.round(number, count = 0)

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: 

python

copy
x = 5.15742

print(round(x))

# Kết quả: 5

x = 10.677781

print(round(x, 2))

# Kết quả: 10.68

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:
python

copy
import math

x = 9

print(math.sqrt(x))

# Kết quả: 3.0

x = 10.677781

print(math.sqrt(x))

# Kết quả: 3.267687408550579

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

VD:

python

copy
import math

x = 1

print(math.acos(x))

# Kết quả: 0.0


x = 0.5

print(math.acos(x))

# Kết quả: 1.0471975511965979

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

VD:

python

copy
import math

x = 1

print(math.cos(x))

# Kết quả: 0.5403023058681398

x = 0.5

print(math.cos(x))

# Kết quả: 0.8775825618903728

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

python

copy
import math

x = 1

print(math.asin(x))

# Kết quả: 1.5707963267948966

x = 0.5

print(math.asin(x))

# Kết quả: 0.5235987755982989

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

VD:

python

copy
import math

x = 1

print(math.sin(x))
# Kết quả: 0.8414709848078965

x = 0.5

print(math.sin(x))

# Kết quả: 0.479425538604203

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:

python

copy
import math

x = 1

print(math.atan(x))

# Kết quả: 0.7853981633974483

print(math.tan(x))

# Kết quả: 1.5574077246549023

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

python

copy
import math

x = 1

print(math.radians(x))

# Kết quả: 0.017453292519943295

x = 90

print(math.radians(x))

# Kết quả: 1.5707963267948966

Bài 20: Hàm ẩ n danh Lambda trong


Python
By VŨ THANH TÀI
02-10-2018 3 phút đọc

Font size  

Nếu như bạ n đã tử ng sử dụ ng javascript, jquery,.. thì chắ c chắ n bạ n sẽ


không lạ vớ i kiểu khai báo biến, hàm như sau:

javascript

copy
// javascript

var add = function (a, b) {

return a + b;

Khái niệm này ngườ i ta gọ i nó là lambda.


Mục Lục

 1, Lambda là gì?

 2, Khai báo lambda.

 3, Ví dụ.

1, Lambda là gì?
- Lambda là mộ t anonymous function (hàm ẩn danh) nó có thể khai
báo, định nghĩa ở bất kỳ đâu và không có khả năng tái sử dụng.

- Lambda chỉ tồ n tạ i trong phạ m vi củ a biến mà nó đượ c định nghĩa, vì


vậ y nếu như biến đó vượ t ra ngoài phạ m vi thì hàm này cũ ng không
còn tác dụ ng nữ a.

- Lambda thườ ng đượ c dùng để gán vào biến, hay đượ c gán vào hàm,
class như mộ t tham số .
2, Khai báo lambda.
Để khai báo mộ t lambda trong Python chúng ta sử dụ ng cú pháp sau:

python

copy
lambda arguments_list: expression

Trong đó:

 lambda là keyword bắt buộc.

 arguments_list là các tham số truyền vào lambda.


 expression là các biểu thức xử lý lambda.

3, Ví dụ.
Ví dụ khai báo mộ t lambda function để tính tổ ng củ a 2 biến.

python

copy
add = lambda a, b: a + b

# call lambda

add(3, 4) # 7

Kiểm tra xem lambda có kiểu dữ liệu là gì

python

copy
add = lambda a, b: a + b

type(add) # function

Bài 21: map, filter trong Python


By VŨ THANH TÀI
02-10-2018 4 phút đọc

Font size  

Mộ t trong nhữ ng bộ ba function cự c chấ t mà hầ u như ngôn ngữ nào


cũ ng phả i có giúp cho việc xử lý mả ng trở lên nhanh gọ n hơn rấ t nhiều.
đó chính là bộ 3 map, filter. Mà nhữ ng thứ  cự c hay như thế thì chắ c chắ n
mộ t ngôn ngữ như python phả i có rồ i! :D

Mục Lục

 1, map().

 2, filter().

 3, Lời kết.
1, map().
Hàm map này có tác dụ ng duyệt qua tấ t cả các phầ n tử củ a mộ t hoặ c
nhiều list, dictionary hoặ c tương tự như thế, sử dụ ng đơn giả n vớ i cú
pháp như sau:

python

copy
map(function, iterable1, iterable2 ,...)

Trong đó:

 function là hàm xử lý logic qua mỗi lần lặp giá trị trong interable1, ......

 interable1, interable2 là các list, dict ,... các bạn cần lặp.

Hàm map sẽ trả về mộ t map object chứ a các kết quả sau khi thự c thi.

VD: nhân đôi giá trị củ a tấ t cả các phầ n tử trong list.

python

copy
def mutiply(x):

return x * x

result = map(mutiply, [1, 2, 3, 4])

print(list(result)) # [1, 4, 9, 16]


Và function kia bạ n có thể khai báo dướ i dạ ng lambla cho gọ n như sau:

python

copy
result = map(lambda x: x * x, [1, 2, 3, 4])

print(list(result)) # [1, 4, 9, 16]

VD: map đố i vớ i 2 list truyền vào.

python

copy
result = map(lambda x, y: x + " " + y, ['red', 'blue'], ['green', 'black'])

print(list(result)) # ['red green', 'blue black']

2, filter().
Hàm này cũ ng có tác dụ ng duyệt qua các phầ n tử trong list, dict,...
nhưng khác vớ i map là hàm này sẽ chỉ trả về nhữ ng giá trị mà điều kiện
trong function chấ p nhậ n (có nghĩa là True).

Cú pháp:

python

copy
filter(function, iterable)

Trong đó:
 function là hàm xử lý logic qua mỗi lần lặp giá trị trong interable, ......

 interable là các list, dict ,... các bạn cần lặp.

Hàm filter sẽ trả về mộ t map object chứ a các kết quả sau khi thự c thi.

VD: filter các giá trị không chia hết cho 2.

python

copy
result = filter(lambda x: x % 2, [1, 2, 3, 4, 5, 6, 7, 8, 9, 22])

print(list(result)) # [1, 3, 5, 7, 9]

3, Lời kết.
Bằ ng việc sử dụ ng lambda trong map và filter thì sẽ giúp cho code củ a
chúng ta tườ ng minh hơn, đồ ng thờ i sẽ tiết kiệm đượ c mộ t số tài
nguyên khi chương trình runtime (không đáng kể).

You might also like