You are on page 1of 64

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA ĐIỆN TỬ

LẬP TRÌNH MẠNG


Giới thiệu về Python

1
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

PYTHON LÀ GÌ?
• Python là ngôn ngữ lập trình hướng đối tượng đang nổi lên hiện nay như một
ngôn ngữ nhập môn lập trình
• Python cũng là một ngôn ngữ thông dịch, tức là ngôn ngữ không cần phải biên
dịch ra file chạy mà đọc code đến đâu thì chạy đến đó.
• Python hỗ trợ mẫu đa lập trình, bao gồm lập trình hướng đối tượng, lập trình hàm
và mệnh lệnh hoặc là các phong cách lập trình theo thủ tục.
• Python không chỉ làm việc trên lĩnh vực đặc biệt như lập trình web, và đó là tại
sao ngôn ngữ này là đa mục đích bởi vì nó có thể được sử dụng với web,
enterprise, 3D CAD, …

2
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

ĐẶC ĐIỂM CỦA PYTHON

• Ngôn ngữ lập trình đơn giản, dễ học


• Miễn phí, mã nguồn mở
• Khả năng di chuyển: có thể chạy liền mạch trên hầu hết tất cả các nền tảng như
Windows, macOS, Linux.
• Khả năng mở rộng và có thể nhúng: có thể dễ dàng kết hợp các phần code bằng
C, C++ và những ngôn ngữ khác (có thể gọi được từ C) vào code Python.
• Ngôn ngữ thông dịch cấp cao
• Thư viện tiêu chuẩn lớn để giải quyết những tác vụ phổ biến

3
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÀI ĐẶT VÀ CHẠY PYTHON TRÊN WINDOWS

• Tải Python tại đường dẫn: https://www.python.org/downloads/


• Nhấp đúp vào file vừa tải về để cài đặt. Có 2 tùy chọn để cài đặt:
• Install Now: Mặc định cài Python vào ổ C, cài sẵn IDLE (cung cấp giao diện đồ họa để làm
việc với Python), pip và tài liệu, tạo shortchut,...
• Customize installation: Cho phép chọn vị trí cài và tính năng cần thiết.

4
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC KHÁI NIỆM CƠ BẢN TRONG NGÔN NGỮ


LẬP TRÌNH PYTHON

• Keyword : là những từ chỉ dành riêng cho Python. Ngoại trừ True, False và None được
viết hoa ra thì các keyword khác đều bắt buộc được viết dưới dạng chữ thường.
• Định danh : là tên được đặt cho các thực thể như class, function, biến,... trong Python.
Nó giúp phân biệt thực thể này với thực thể khác.

5
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

QUY TẮC VIẾT ĐỊNH DANH


• Định danh có thể là sự kết hợp giữa các chữ cái viết thường (từ a đến z) hoặc viết hoa (A đến Z) hoặc các số (từ 0 đến 9) hoăc
dấu gạch dưới .

• Định danh không thể bắt đầu bằng một chữ số.

• Định danh phải khác các keyword.

• Python không hỗ trợ các ký tự đặc biệt như !, @, #, $, %,... trong định danh.

• Định danh có thể dài bao nhiêu tùy ý.

• Tên lớp thường bắt đầu với một chữ cái hoa. Tất cả các định danh khác bắt đầu với chữ cái thường.

• Định danh bắt đầu với một dấu dạch dưới _ thì là định danh private.

• Định danh bắt đầu với 2 dấu gạch dưới __ thì mức độ private cao hơn.

• Nếu định danh bắt đầu và kết thúc bằng 2 dấu gạch dưới (__init__ chẳng hạn) thì định danh đó là tên đặc biệt được ngôn ngữ
định nghĩa.

• Python là ngôn ngữ lập trình phân biệt chữ hoa, chữ thường, nghĩa là bien và Bien là không giống nhau.

6
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁCH VIẾT LỆNH TRONG PYTHON

• Mỗi câu lệnh được viết trên 1 dòng nếu câu lệnh trên nhiều dòng thì sử dụng ký tự tiếp
tục dòng lệnh (\)
• Một khối code (thường là khối lệnh của hàm, vòng lặp,...) bắt đầu với thụt lề và kết thúc
với dòng đầu tiên không thụt lề. Thụt lề bao nhiêu là tùy thuộc ở người lập trình nhưng
chúng phải nhất quán trong suốt khối code đó, tức là các lệnh trong cùng một khối thì
phải có độ thụt lề bằng nhau.
• Sử dụng ký tự # để bắt đầu một dòng chú thích

7
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC KIỂU DỮ LIỆU

• Python có 5 kiểu dữ liệu chuẩn là:


• Kiểu number
• Kiểu string
• Kiểu list
• Kiểu tuple
• Kiểu dictionary

8
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC LOẠI TOÁN TỬ

• Toán tử số học
• Toán tử quan hệ (còn gọi là toán tử so sánh)
• Toán tử gán
• Toán tử logic
• Toán tử membership
• Toán tử identify
• Toán tử thao tác bit

9
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ SỐ HỌC TRONG PYTHON


Toán tử Miêu tả

// Thực hiện phép chia, trong đó kết quả là thương số sau khi đã xóa các chữ số
sau dấu phảy
+ Phép cộng
- Phép trừ
* Phép nhân
/ Phép chia
% Phép chia lấy phần dư
** Phép lấy số mũ (ví dụ 2**3 cho kết quả là 8)

10
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ QUAN HỆ

Toán tử Miêu tả

< Nhỏ hơn. Nếu giá trị của toán hạng trái là nhỏ hơn giá trị của toán hạng
phải, thì điều kiện trở thành true
> Lớn hơn
<= Nhỏ hơn hoặc bằng
<= Lớn hơn hoặc bằng
== Bằng
!= Không bằng
<> Không bằng (tương tự !=)

11
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ GÁN
Toán tử Miêu tả

= Phép gán
/= Chia toán hạng trái cho toán hạng phải, và gán kết quả cho toán hạng trái

+= Cộng và gán
-= Trừ và gán
*= Nhân và gán
%= Chia lấy phần dư và gán
**= Lấy số mũ và gán
//= Thực hiện phép chia // và gán

12
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ LOGIC

Toán tử Miêu tả

and Phép Và. Nếu cả hai điều kiện là true thì kết quả sẽ là true

or Phép Hoặc. Nếu một trong hai điều kiện là true thì kết quả là true

not Phép phủ định. Được sử dụng để đảo ngược trạng thái logic của
toán hạng

13
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ THAO TÁC BIT


Toán tử Miêu tả Ví dụ
a = 0011 1100 và b = 0000 1101.
& Sao chép một bit tới kết quả nếu bit này tồn tại trong cả hai toán hạng (a & b) cho kết quả 0000 1100

| Sao chép một bit tới kết quả nếu bit này tồn tại trong bất kỳ toán hạng nào (a | b) = 61 (tức là 0011 1101)

^ Sao chép bit nếu nó được set (chỉ bit 1) chỉ trong một toán hạng (a ^ b) = 49 (tức là 0011 0001)

~ Đây là toán tử một ngôi, được sử dụng để đảo ngược bit (~a ) = -61 (tức là 1100 0011)

<< Toán tử dịch trái nhị phân. Giá trị của toán hạng trái được dịch chuyển a << = 240 (tức là 1111 0000)
sang trái một số lượng bit đã được xác định bởi toán hạng phải

>> Toán tử dịch phải nhị phân. Giá trị của toán hạng trái được dịch chuyển a >> = 15 (tức là 0000 1111)
sang phải một số lượng bit đã được xác định bởi toán hạng phải

14
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ MEMBERSHIP

Toán tử Miêu tả

in Trả về true nếu một biến là nằm trong dãy các biến, nếu không
là false

not in Trả về true nếu một biến là không nằm trong dãy các biến, nếu
không là false

15
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TOÁN TỬ IDENTIFY

Toán tử Miêu tả

is Trả về true nếu các biến ở hai bên toán tử cùng trỏ tới một đối
tượng, nếu không là false

is not Trả về false nếu các biến ở hai bên toán tử cùng trỏ tới một đối
tượng, nếu không là true

16
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

THỨ TỰ ƯU TIÊN CỦA CÁC TOÁN TỬ


Toán tử Miêu tả
** Toán tử mũ
~+- Phần bù; phép cộng và trừ một ngôi (với tên phương thức lần lượt là +@ và -@)

* / % // Phép nhân, chia, lấy phần dư và phép chia //

+- Phép cộng và phép trừ


>> << Dịch bit phải và dịch bit trái
& Phép Và Bit
^| Phép XOR và OR
<= < > >= Các toán tử so sánh

<> == != Các toán tử so sánh bằng


= %= /= //= -= += *= Các toán tử gán
**=

is is not Các toán tử Identity


in not in Các toán tử Membership
not or and Các toán tử logic

17
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÀO RA TRONG PYTHON

• Xuất dữ liệu ra màn hình:


• print (“ Chuỗi dữ liệu cần in ra “[, biểu thức ])
• Nhập dữ liệu từ bàn phím:
• Tên biến = input([“chuỗi thông báo:”])
• Ví dụ:
• print ("Python is really a great language,", "isn't it?")
• x = input(“Hay nhap so x:")

18
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC CẤU TRÚC ĐIỀU KHIỂN

• Lệnh if
• Lệnh for
• Lệnh while
• Lệnh continue,break
• Lệnh pass

19
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CẤU TRÚC LỆNH IF

• Cú pháp
• if điều kiện
• Khối lệnh của if

20
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CẤU TRÚC LỆNH IF ELSE

• Cú pháp: Sơ đồ

if điều kiện:
Khối lệnh của if
else:
Khối lệnh của else

21
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

LỆNH IF...ELIF...ELSE

• Cú pháp

if điều kiện:
Khối lệnh của if
elif test expression:
Khối lệnh của elif
else:
Khối lệnh của else

22
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÍ DỤ VỀ LỆNH IF
• x = int(input("Nhap mot so: "))
• if x < 0:
• x=0
• print('So am')
• elif x == 0:
• print('So 0')
• elif x == 1:
• print('So 1')
• else:
• print('So duong')

23
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÒNG LẶP FOR


• Ví dụ: # Tính tổng tất cả các số trong danh sách A
• Cú pháp • # Danh sách A

• for bien_lap in chuoi_lap: • A = [1, 3, 5, 9, 11, 2, 6, 8, 10]


• # Biến để lưu trữ tổng các số là tong, gán giá trị ban
• Khối lệnh của for đầu bằng 0
• tong = 0
• # Vòng lặp for, a là biến lặp
• for a in A:
• tong = tong+a
• # Đầu ra: Tổng các số là 55
• print("Tổng các số là", tong)

24
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÍ DỤ 2
• #Lặp dãy từ 0 đến 10
• for num in range(0,10):
• #Lặp trên các thừa số của một số trong dãy
• for i in range(2,num):
• #Xác định thừa số đầu tiên (phép chia có số dư bằng 0)
• if num%i == 0:
• j=num/i #Ước lượng thừa số thứ 2
• print ('%d bằng %d * %d' % (num,i,j))
• break #Dừng vòng for hiện tại, chuyển đến số tiếp theo trong vòng for đầu
tiên
• else: # Phần else trong vòng lặp
• print (num, 'là số nguyên tố')

25
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÒNG LẶP WHILE

Cú pháp: Ví dụ:
while bieu_thuc: count = 0
cac_lenh while (count < 9):
print ‘Dem so:', count
count = count + 1

print “Ket thuc!"

26
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÒNG LẶP VÔ HẠN

• Một vòng lặp vô hạn là vòng lặp mà điều kiện của • Ví dụ:
nó là luôn true, tức là vòng lặp không bao giờ kết
• var = 1
thúc.
• Một vòng lặp vô hạn có thể là rất hữu ích trong lập • while var == 1 : # vong lap vo han
trình client/server, tại đó server cần chạy liên tục để • num = input("Hay nhap mot so :")
mà các chương trình client có thể giao tiếp với nó
• print ("So da nhap la: ", num)
khi cần thiết.
• Để thoát khỏi vòng lặp vô hạn cần nhấn phím • print (“Ket thuc!”)
CTRL+C

27
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

LỆNH ELSE VỚI VÒNG LẶP WHILE

• Khi else được sử dụng với một • Ví dụ:


vòng lặp while, thì lệnh else • count = 0
được thực thi khi điều kiện là
false. • while count < 5:
• print (count, " la nho hon 5“)
• count = count + 1
• else:
• print (count, " la khong nho hon 5“)

28
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

LỆNH BREAK

• Lệnh này kết thúc vòng lặp hiện tại và truyền • Ví dụ:
điều khiển tới cuối vòng lặp. • var = 10
• Lệnh break có thể được sử dụng trong vòng • while var > 0:
lặp while và vòng lặp for.
• print ('Gia tri bien hien tai la :', var)
• Nếu đang sử dụng lồng vòng lặp, thì lệnh break
• var = var -1
kết thúc sự thực thi của vòng lặp bên trong và
bắt đầu thực thi dòng code tiếp theo của khối. • if var == 5:

• Cú pháp: • break
• break • print “Ket thuc!"

29
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

LỆNH CONTINUE

• Lệnh continue trả về điều khiển tới • Ví dụ:


phần ban đầu của vòng lặp. Lệnh này
• var = 10
bỏ qua lần lặp hiện tại và bắt đầu lần
lặp tiếp theo của vòng lặp diễn ra. • while var > 0:
• Lệnh continue có thể được sử dụng • var = var -1
trong vòng lặp while hoặc vòng lặp
• if var == 5:
for.
• Cú pháp: • continue
• continue • print ('Gia tri bien hien tai la :', var)

30
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

LỆNH PASS

• Lệnh pass được sử dụng khi một lệnh là cần thiết theo cú pháp nhưng không muốn bất
cứ lệnh hoặc khối code nào được thực thi.
• Lệnh pass là một hoạt động null và không có gì xảy ra khi nó thực thi.
• Cú pháp :
• pass

31
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

ĐỊNH NGHĨA HÀM

• Định nghĩa hàm:


• def ten_ham( cac_tham_so ):
• Các câu lệnh
• return [bieu_thuc]
• Trong đó: Lệnh return có thể có hoặc không
• Lời gọi hàm:
• ten_ham( cac_tham_so )

32
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÍ DỤ VỀ HÀM
• # Phan dinh nghia ham
• def sum( arg1, arg2 ):
• # Cong hai tham so va tra ve ket qua."
• total = arg1 + arg2
• print "Ben trong ham : ", total
• return total;

• # Loi goi ham

• total = sum( 10, 20 );


• print "Ben ngoai ham : ", total

33
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TRUYỀN THAM SỐ CHO HÀM

• Tất cả parameter (argument) trong • Ví dụ:


Python đều được truyền bởi tham • def changeme( mylist ):
chiếu. Nghĩa là tất cả những thay • #Thay doi list da truyen cho ham
đổi mà một parameter tham chiếu • mylist.append([1,2,3,4]);
tới bên trong một hàm, thì thay đổi
• print ("Cac gia tri ben trong ham la: ", mylist)
này cũng phản ánh trong lời gọi
• return
hàm.
• mylist = [10,20,30];
• changeme( mylist );
• print ("Cac gia tri ben ngoai ham la: ", mylist)

34
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC THAM SỐ HÀM TRONG PYTHON

• Có 4 kiểu tham số chính thức:


• Tham số bắt buộc,
• Tham số mặc định,
• Tham số từ khóa (tham số được đặt tên),
• Tham số thay đổi

35
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

THAM SỐ BẮT BUỘC

• Các tham số bắt buộc là các tham • Ví dụ:


số được truyền tới một hàm theo • def sum(a,b):
một thứ tự chính xác. • # Ham co hai tham so
• c=a+b
• print(“ tong = “,c)

• sum(10,20)
• sum(20)

36
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

THAM SỐ MẶC ĐỊNH

• Tham số mặc định là tham số mà • Ví dụ:


cung cấp các giá trị mặc định cho • def msg(Id,Name,Age=21):
các tham số được truyền trong • #"In gia tri da truyen"
phần định nghĩa hàm, trong trường • print(Id)
hợp mà giá trị không được cung cấp • print(Name)
trong lời gọi hàm. • print(Age)
• return
• #Function call
• msg(Id=100,Name='Hoang',Age =20)
• msg(Id=101,Name='Thanh')

37
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

THAM SỐ TỪ KHÓA
• Ví dụ:
• Sử dụng tham số từ khóa, tham
số được truyền trong lời gọi • def msg(Id,Name):

hàm được kết nối với phần định • #"In gia tri da truyen"
nghĩa hàm dựa trên tên của • print("ma so:",Id)
tham số. Với trường hợp này, vị
• print("Ten:",Name)
trí của các tham số trong lời gọi
hàm là tùy ý •
• #Function call
• msg(Id=100,Name='Hoang')

• msg(Name='Thanh',Id=101)

38
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

THAM SỐ THAY ĐỔI


• Ví dụ:
• Tham số thay đổi là tham số có thể có hoặc không có
• def printinfo( arg1, *vartuple ):
giá trị truyền đến trong lời gọi hàm
• "In mot tham so da truyen"
• Cú pháp: • print ("Ket qua la: ")
• print (arg1)
• def tenham([th_so_chinh_thuc,] *th_số thay đổi ):
• for var in vartuple:
• Các câu lệnh
• print (var)
• return [bieu_thuc] • return;
• # Lời gọi hàm:
• printinfo( 10 )
• printinfo( 70, 60, 50 )

39
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

CÁC LOẠI MODULE VÀ THƯ VIỆN

Có 3 loại module thường thấy là:


1. Viết bằng Python: có phần mở rộng là .py
2. Các thư viện liên kết động: có phần mở rộng là .dll, .pyd,
.so, .sl,…
3. C-Module liên kết với trình phiên dịch.

40
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ CHUỖI

• Truy xuất từng ký tự trong một chuỗi theo index,


• ví dụ: str1 = “Hello” thì str1[0] = ‘H’ , str1[1] = ‘e’ …
• sử dụng 3 dấu nháy (đôi hoặc đơn) để khai báo chuỗi trên nhiều dòng.
• Ví dụ: paragraph = """This is line 1
• This is line 2
• This is line 3""“
• nối các chuỗi bằng phép +
• VD: str1 = “ Hello “, str2 =“ world “ khi đó str = str1 + str2 = “ Hello world”

41
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ CHUỖI
• Trích xuất chuỗi con : lấy khoản [start:end] (range).
• VD: str = 'Hello world' print str[0:4] = "Hell“
• Lấy độ dài của chuỗi: len(chuỗi)
• VD: count = len("Hello world")  count = 11
• Tìm và thay thế trong chuỗi: replace(search, replace[, max])
• VD: str = 'Hello world' newstr = str.replace('Hello' , 'Bye')
• Tách chuỗi: split(str="", num=string.count(str)) .
• VD: str = 'Hello world' print str.split(' ')
• splitlines() để tách chuỗi theo từng dòng

42
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ CHUỖI
• loại bỏ các ký tự khoảng trắng:
• strip([chars]) : loại bỏ trước và sau chuỗi
• lstrip([chars]) : loại bỏ phía trước chuỗi
• rstrip([chars]) : loại bỏ phía sau chuỗi

• isnumeric() : Kiểm tra một chuỗi có phải là chuỗi số


• lower() : Chuyển chuỗi hết thành chữ thường
• upper() : Chuyển chuỗi hết thành chữ HOA

43
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

• Nhập 1 chuỗi, đếm xem trong chuỗi có bao nhiêu từ (giả sử:
các từ phân tách nhau bởi dấu cách hoặc dấu , hoặc dấu .
Hoặc dấu !
• VD: xin chào! Tên tôi là hoa, tôi 20 tuổi

44
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

BÀI TẬP

• Nhập 1 chuỗi dữ liệu. Thay thế tất cả các chuỗi con x được nhập từ bàn phím thành
chuỗi con y( nhập từ bàn phím)
• VD: str gốc = “ xin chào xin cho tôi một vé”
• X = “xin”
• Y = “không”
•  không chào không cho tôi một vé

45
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ LIST

• Truy xuất từng phần tử của mảng bằng index, phần tử đầu tiên có thứ tự là 0
• VD: numbers = [1, 2, 3, 4, 5] names = ['Marry' , 'Peter']
• numbers[0] = 1/ names[0] = ‘Marry’
• Đếm số phần tử của mảng: len(array)
• Trích xuất mảng con: tên mảng [start:end]/ (range).
• . Xóa phần tử của mảng: del tên mảng[ chỉ số]
• Nối 2 mảng: toán tử +

46
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ LIST

• Thêm phần tử vào mảng: list.append(newvalue)


• Lấy phần tử cuối mảng: list.pop()
• Đảo ngược giá trị của mảng: list.reverse() .
• Sắp xếp giá trị các phần tử: list.sort([func])

47
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TUPLE

• Tuple cũng là một cấu trúc mảng, tương tự như cấu trúc List.
• Khai báo Tuple sử dụng cặp dấu ngoặc (...) và một tuple đã được khai báo rồi thì không
thay đổi được giá trị (immutable)
• Không hỗ trợ các phương thức như append() , pop() …
• VD:
mytuple = ('x' , 'y' , 'z')

48
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

DICTIONARY

• Dictionary cũng là một cấu trúc mảng, nhưng các phần tử bao gồm key và value.
• VD: point = {'x': 1, 'y': 2}
• point[x] = 1
• Thêm một phần tử vào dictionary: dict[key] = value .
• VD: user = {'name': 'Jone' , 'age': 30}
• user['country'] = 'Vietnam‘
• Kết quả là : user = {'country': 'Vietnam' , 'age': 30, 'name': 'Jone'}

49
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

DICTIONARY

• dict.clear() : Xóa toàn bộ dữ liệu bên trong đối tượng


• dict.copy() : Trả về một bản copy của đối tượng
• dict.has_key(key) : kiểm tra một key có tồn tại trong đối tượng hay không.
• dict.keys() : Trả về một List chứa các key
• dict.values() : Trả về một List chứa các value

50
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

• Tạo 1 dictionary gồm 2 thành phần số -- key và bình phương của số -- value
• Nhập 1 số nguyên dương
• Lập 1 list chứa các dictionary từ 0 – đến số nguyên vừa nhập

51
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ EXCEPTION TRONG PYTHON

• Cơ chế xử lý ngoại lệ của Python được cài đặt thông qua việc sử dụng các khối lệnh:
try, except và finally.
• Khối try: Dùng để thử lỗi. Khối try sẽ chứa các đoạn mã có khả năng gây ra lỗi
• Khối except: Dùng để xử lý lỗi. Khối except sẽ chứa các đoạn mã xử lý lỗi được phát
sinh trong khối try. Khối except có ý nghĩa giống như khối catch ở các ngôn ngữ khác
như Java, C#
• Khối finally: Dùng để chứa các đoạn mã sẽ được thực thi cho dù chương trình có lỗi hay
không. Khối này thường dùng để chứa các đoạn lệnh giải phóng tài nguyên sau khi
thực thi xong chương trình, VD như đóng file, đóng kết nối đến CSDL v.v…

52
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ EXCEPTION TRONG PYTHON

• Nếu chương trình có lỗi, khối try sẽ dừng lại, và chương trình
sẽ chuyển đến khối except để thực thi và xử lý lỗi.
• Nếu chương trình có nhiều khối except, thì từng khối sẽ lần lượt được
đánh giá theo thứ tự từ trên xuống dưới, khối nào xử lý được lỗi thì sẽ
được thực thi.
• Nếu chương trình không có lỗi, khối try sẽ được thực thi toàn bộ, chương
trình không thực thi khối except.

53
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

XỬ LÝ EXCEPTION TRONG PYTHON.

• Sơ đồ phân cấp của các ngoại lệ trong Python


• Lớp ở mức cao nhất là BaseException
• Các lớp con trực tiếp là Exception và KeyboardInterrupt, ..
• Các Exception sẵn có của Python thông thường được bắt nguồn
(derived) từ BaseException (Mở rộng từ BaseException). Trong khi đó
các Exception của người dùng (lập trình viên) nên thừa kế từ lớp
Exception hoặc từ các lớp con của nó.

54
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

BÀI TẬP

• Bài 2: nhập 1 dãy số nguyên, in ra các số nguyên tố trong dãy. Tính trung bình cộng các
số không nguyên tố
• Bài 3: Nhập 1 số nguyên 0<n<50. Nhập 1 mảng gồm n số nguyên. Viết hàm kiểm tra 1
số có là số đối xứng không? Tạo 1 dictionary chứa các số đối xứng. Tính TBC các số
đối xứng
• VD 123321

55
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

BÀI TẬP

• 1- Viết hàm tính giai thừa của 1 số nguyên dương. Nhập n, in ra kết quả n!
• 2- Nhập 1 số nguyên dương n. Tạo 1 danh sách (list) chứa bình phương các số từ 1 đến
n
• 3 – Nhập 1 số nguyên dương n. Tạo 1 dictionary chứa bình phương các số từ 1 đến n
• 4- Nhập 1 dãy số, các số được phân tách nhau bởi dấu phảy. Tính tổng các số chẵn

56
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

BÀI TẬP

• 5- Viết hàm tính tổng, hàm tính hiệu, hàm tính tích, hàm tính thương của 2 số thực. Nhập 2
số. In kết quả tổng, hiệu, tích, thương của 2 số đó
• 6- Viết hàm tính tổng các số chẵn của 1 dãy, hàm tính tổng các số lẻ của 1 dãy. Nhập 1 list
các phần tử phân tách nhau bởi dấu phảy. Tính tổng chẵn, tổng lẻ của list đã nhập
• 7 – Viết hàm kiểm tra 1 số nguyên x có chia hết cho 2 không, hàm kiểm tra số chia hết cho
3, hàm kiểm tra số chia hết cho 5. Nhập 1 số tự nhiên N, tạo ra 3 list chứa các số chia hết
cho 2, chia hết cho 3, chia hết cho 5 trong khoảng từ 1 đến N
• 8- Viết hàm kiểm tra số x có nguyên tố không, hàm kiểm tra x có chính phương không.
Nhập 1 số nguyên dương N, tạo 1 dictionary chứa các số nguyên tố và 1 dictionary chứa các
số chính phương trong khoảng từ 1 đến N

57
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

MỘT SỐ KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG

• Lớp: Một nguyên mẫu được định nghĩa bởi người dùng cho một đối tượng. Các thuộc
tính là các thành viên dữ liệu (các biến class và biến instance) và các phương thức
được truy cập thông qua toán tử dot (dấu chấm .)
• Biến class: Đây là một biến được chia sẻ bởi tất cả các instance (sự thể hiện) của một
lớp. Các biến class được định nghĩa bên trong một lớp nhưng ở bên ngoài bất cứ
phương thức nào của lớp đó.
• Instance: Là một đối tượng riêng của một lớp nào đó. Một đối tượng obj mà thuộc một
lớp Circle là một instance (sự thể hiện) của lớp Circle.

58
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

MỘT SỐ KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG

• Biến instance: Là một biến được định nghĩa bên trong một phương thức và chỉ thuộc sở
hữu của instance hiện tại của một lớp đó.
• Phương thức: Một loại hàm đặc biệt mà được định nghĩa trong một phần định nghĩa
lớp.
• Đối tượng: Một instance duy nhất của một cấu trúc dữ liệu mà được định nghĩa bởi lớp
của nó. Một đối tượng gồm các thành viên dữ liệu (biến class và biến instance) và các
phương thức.

59
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

KHAI BÁO CLASS

• class myclass([parentclass]):
• assignments
• def __init__(self):
• statements
• def method():
• statements
• def method2():
• statements

60
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

VÍ DỤ ĐƠN GIẢN VỀ MỘT LỚP TRONG PYTHON:


• class Sinhvien:
• 'Class co so chung cho tat ca sinh vien'
• svCount = 0
• def __init__(self, ten, hocphi):
• self.ten = ten
• self.hocphi = hocphi
• Sinhvien.svCount += 1
• def displayCount(self):
• print "Tong so Sinh vien %d" % Sinhvien.svCount
• def displaySinhvien(self):
• print "Ten : ", self.ten, ", Hoc phi: ", self.hocphi

61
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TRUYỀN GIÁ TRỊ CHO CLASS

• Để tạo các giá trị của một lớp, sử dụng tên lớp và truyền vào bất kỳ tham số nào mà
phương thức __init__ của nó chấp nhận.
• Ví dụ:
• sv1 = Sinhvien("Hoang", 4000000)
• sv2 = Sinhvien("Huong", 4500000)

62
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

TRUY CẬP CÁC THUỘC TÍNH TRONG CLASS

• Để truy cập các thuộc tính của đối tượng sử dụng toán tử dot (dấu chấm) với đối tượng
như sau:
• Tên_class.Tên_thuộc_tính
• Tên_class.Tên_phương_thức
• Ví dụ:
• sv1.displaySinhvien()
• sv2.displaySinhvien()
• print "Tong so Sinh vien %d" % Sinhvien.svCount

63
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved
LẬP TRÌNH MẠNG

BÀI TẬP

• Tạo 1 class hoc sinh gồm các thông tin tên, mã học sinh, điểm toán, lý, hóa. Viết các
phương thức tính điểm tổng 3 môn, phương thức hiển thị thông tin học sinh.
• Nhập 1 list gồm n học sinh. Tìm học sinh có điểm tổng lớn nhất, tính trung bình cộng
điểm các học sinh có điểm toán <5 (lưu ý trường hợp tất cả hs đều có điểm toán >5)

64
https://fee.haui.edu.vn/vn © 2021 Hanoi University of Industry All rights reserved

You might also like