Uþ BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GÒN GIÁO TRÌNH MÔN HàC/MÔ ĐUN: LÀP TRÌNH PYTHON NÂNG CAO NGÀNH/ NGHÀ: TIN HàC ĀNG DĀNG TRÌNH ĐÞ: CAO ĐÀNG Ban hành kèm theo Quyết định số:459/QĐ-NSG, ngày 31 tháng 08 năm 2022 của Hiệu trưởng Trường Cao Đẳng Bách Khoa Nam Sài Gòn Tp.Hồ Chí Minh, năm 2022 TUYÊN BÞ BÀN QUYÀN Tài liáu này thuộc lo¿i sách giáo trình nên các nguãn thông tin có thể đ°ợc phép dùng nguyên bÁn hoặc trích dùng cho các mục đích về đào t¿o và tham khÁo. Mái mục đích khác mang tính lách l¿c hoặc sử dụng với mục đích kinh doanh thiếu lành m¿nh sẽ bß nghiêm cấm. LâI GIàI THIÞU Môn hác này thuộc khái kiến thāc chuyên môn nghề trong ch°¢ng trình đào t¿o ngành tin hác āng dụng há cao đẳng. LÁp trình Python nâng cao là môn hác b¿t buộc trong ch°¢ng trình ngành Tin hác āng dụng trình độ cao đẳng.
Nội dung giáo trình gãm 4 ch°¢ng: - Ch°¢ng 1: LÁp trình h°ớng đái t°ợng - Ch°¢ng 2: Làm viác với tÁp tin XML - Ch°¢ng 3: Làm viác với dữ liáu JSON - Ch°¢ng 4: Xây dựng āng dụng với c¢ sá dữ liáu - Ch°¢ng 5: Sets và dictionaries Trong quá trình biên so¿n chúng tôi đã kết hợp kinh nghiám giÁng d¿y trong nhiều năm cÿa nhóm tác giÁ với mong muán có thể giúp cho hác sinh 3 sinh viên dß dàng n¿m b¿t đ°ợc nội dung cÿa môn hác. Mặc dù, rất cá g¿ng trong quá trình biên so¿n, nh°ng ch¿c ch¿n không thể tránh khßi những thiếu sót, vì vÁy, nhóm tác giÁ chúng tôi rất mong nhÁn đ°ợc ý kiến đóng góp cÿa b¿n đác để giáo trình ngày một hoàn thián h¢n.HCM , ngày 30 tháng 01 năm 2022 Tham gia biên so¿n 1. Chÿ biên: ThS Đào Thß Xuân H°ßng 2. &&&&& MĀC LĀC Contents Ch°¢ng 1.
LÁp trình h°ớng đái t°ợng. Lớp và đái t°ợng. Một sá khái niám h°ớng đái t°ợng. T¿o các lớp trong Python.
Phân biát giữa Đái t°ợng (Object) và Lớp (Class):. So sánh class cha và class con. T¿o Instance trong Python:. Thêm, xóa, hoặc sửa đổi các thuộc tính cÿa các lớp và đái t°ợng t¿i bất cā thßi điểm nào.
Hÿy đái t°ợng (Trình dán rác) trong Python:. Ph°¢ng thāc:. Ghi đè ph°¢ng thāc trong Python:. N¿p chãng ph°¢ng thāc trong Python:.
N¿p chãng toán tử trong Python. Àn dữ liáu (Data Hiding) trong Python. Các kiểu kế thừa:. Lớp trừu t°ợng.
Làm viác với tÁp tin XML. Giới thiáu XML. Khái niám XML. Đặc điểm cÿa file XML.
¯u điểm cÿa file. Nh°ợc điểm cÿa XML. Āng dụng phổ biến cÿa XML. Đác (read) file XML với BeautifulSoup.
Các hàm cÿa BeautifulSoup th°ßng đ°ợc sử dụng để đác file XML nh°: 28 2. Đác (read) file XML với minidom. Cấu trúc tÁp tin XML với SAX APIs. Ph°¢ng thāc make_parser trong Python.
Ph°¢ng Thāc Parse Trong Python. Ph°¢ng Thāc Parsestring Trong Python. Phân tích cú pháp XML với DOM APIs. Làm viác với dữ liáu JSON.
Giới thiáu JSON. Cấu trúc JSON. Xử lý Json với Python. Convert JSON trong Python.
Convert object Python thành JSON. Format hiển thß. Đác, xử lý dữ liáu JSON từ internet. Má, đác, ghi dữ liáu và tÁp tin.
Ghi JSON vào một táp. Đác JSON từ một táp:. Xây dựng āng dụng với c¢ sá dữ liáu. Giới thiáu Há QTCSDL SQLite.
Cách Cài Đặt Mysqldb. Python sqlite module APIs. Kết Nái Database Trong Python. T¿o BÁng Dữ Liáu Trong Python.
Thêm dữ liáu trong python:. Đác dữ liáu trong python:. CÁp nhÁt dữ liáu trong Python. Xoá dữ liáu trong Python.
Ng¿t kết nái tới database trong python. Xây dựng āng dụng. 75 TÀI LIàU THAM KHÀO. 77 GIÁO TRÌNH MÔN LÀP TRÌNH PYTHON NÂNG CAO Tên môn hác/mô đun: LÁp Trình Python Nâng Cao Mã môn hác/mô đun: MH26 Vß trí, tính chất, ý nghĩa và vai trò cÿa môn hác/mô đun: - Vß trí: : Môn hác này thuộc khái kiến thāc chuyên môn, b¿t buộc trong ch°¢ng trình đào t¿o bÁc cao đẳng ngành Tin hác āng dụng.
- Tính chất: là môn hác b¿t buộc. Môn hác nhÁm giúp sinh viên b°ớc đ¿u làm quen với môi tr°ßng lÁp trình python, sinh viên thực hián nhiều ví dụ để n¿m rõ h¢n các kỹ thuÁt lÁp trình nhÁm xây dựng āng dụng ch¿y trên nhiều nền tÁng khác nhau. - Ý nghĩa và vai trò cÿa môn hác/mô đun: Ý nghĩa: Python hián là ngôn ngữ lÁp trình phổ biến nhất thế giới. ¯u điểm nổi bÁt cÿa Python là dß hác, dß viết.
Không những thế, Python còn có một cộng đãng ng°ßi dùng lớn và há tháng th° vián mã nguãn má đã sộ giúp b¿n hoàn thành các dự án cÿa mình nhanh chóng và hiáu quÁ. Cho dù đó là một dự án về phân tích dữ liáu, hác máy, xử lý Ánh, game, điều khiển thiết bß, hoặc chỉ đ¢n giÁn là tự động hóa các tác vụ trên máy tính cÿa b¿n, thì g¿n nh° b¿n đều có thể tìm thấy các th° vián Python hỗ trợ. Vai trò: Môn hác này áp dụng cho sinh viên ngành Tin hác āng dụng trình độ Cao đẳng. Māc tiêu cÿa môn hác/mô đun: - VÁ ki¿n thāc: + N¿m với kiến thāc lÁp trình h°ớng đái t°ợng với python - VÁ kỹ năng: + - Tổ chāc, xây dựng đ°ợc các ch°¢ng trình theo h°ớng đái t°ợng + - Làm viác đ°ợc với tÁp tin XML + - Làm viác đ°ợc với dữ liáu Jason + - Xây dựng đ°ợc āng dụng với c¢ sá dữ liáu - VÁ năng lực tự chÿ và trách nhißm: Rèn luyán lòng yêu nghề, t° thế tác phong công nghiáp, tính kiên trì, sáng t¿o trong công viác.
Giáo trình Môn Lập Trình Python Nâng Cao – Hệ Cao Đẳng Ch°¡ng 1. Lập trình h°ớng đối t°ợng Mục tiêu: Học xong chương này sinh viên có thể - Tìm hiểu và sử dụng được hướng đối tượng trong ngôn ngữ python Python là một ngôn ngữ lÁp trình h°ớng đái t°ợng. Do đó với những b¿n đã hác qua C++ ch¿c rÁng đã khá quen thuộc với các khái niám về h°ớng đái t°ợng này. Ch°¢ng này sẽ trình bày s¢ qua về các thuÁt ngữ liên quan đến h°ớng đái t°ợng cùng với các ví dụ minh háa giúp b¿n dß hiểu h¢n về vấn đề đã trình bày.
Lớp và đối t°ợng 1. 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 mà đßnh nghĩa một tÁp hợp các thuộc tính mà xác đßnh rõ bất kỳ đái t°ợng nào cÿa lớp đó. 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 đó. Biến class không đ°ợc sử dụng th°ßng xuyên nh° biến instance. Thành viên dữ liáu: Là một biến class hoặc biến instance mà giữ dữ liáu đ°ợc liên kết với một lớp và các đái t°ợng cÿa nó. N¿p chãng hàm (overloading): Là phép gán cÿa nhiều h¢n một hành vi tới một hàm cụ thể.
Ho¿t động đ°ợc thực hián là đa d¿ng do các kiểu cÿa các đái t°ợng hoặc tham sá liên quan. 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 đó. Tính kế thừa: Là viác truyền các đặc tr°ng cÿa một lớp cho các lớp khác mà kế thừa từ lớp ban đ¿u. 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. Trình khái t¿o: Là trình t¿o một sự thể hián 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. N¿p chãng toán tử: Là phép gán cÿa nhiều h¢n một hàm cho một toán tử cụ thể. GVBS: Đào Thị Xuân Hường Trang 1 Giáo trình Môn Lập Trình Python Nâng Cao – Hệ Cao Đẳng 1. T¿o các lớp trong Python Trong Python, lánh class đ°ợc sử dụng để t¿o một lớp mới.
Tên cÿa lớp theo ngay sau từ khóa class và đ°ợc theo sau bái dấu hai chấm, nh° sau: class TenLop: 'Phan documentation string cho lop la tuy y' class_suite Lớp có một Documentation String mà có thể đ°ợc truy cÁp thông qua TenLop. class_suite gãm tất cÁ các lánh thành ph¿n mà đßnh nghĩa các thành viên lớp, cấu trúc dữ liáu và hàm. Ví dā : 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 Biến svCount là một biến class có giá trß đ°ợc chia sẻ trong tất cÁ instance cÿa lớp Sinhvien này. Biến này có thể đ°ợc truy cÁp d°ới d¿ng Sinhvien.svCount từ bên trong lớp hoặc bên ngoài lớp.
Ph°¢ng thāc đ¿u tiên __init__() là một ph°¢ng thāc đặc biát, là constructor cÿa lớp hoặc ph°¢ng thāc khái t¿o mà Python gái khi b¿n t¿o một instance mới cÿa lớp này. Khai báo các ph°¢ng thāc khác nh° các hàm thông th°ßng với exception là tham sá đ¿u tiên cho mỗi ph°¢ng thāc là self. Python thêm tham sá self tới List cho b¿n; b¿n không c¿n bao nó khi b¿n gái các ph°¢ng thāc. GVBS: Đào Thị Xuân Hường Trang 2 Giáo trình Môn Lập Trình Python Nâng Cao – Hệ Cao Đẳng 1.
Phân bißt giữa Đối t°ợng (Object) và Lớp (Class): Đái t°ợng (Object): có tr¿ng thái và hành vi. Lớp (Class): có thể đ°ợc đßnh nghĩa nh° là một template mô tÁ tr¿ng thái và hành vi mà lo¿i đái t°ợng cÿa lớp hỗ trợ. Một đái t°ợng là một thực thể (instance) cÿa một lớp Ví dā : Class và Object: class Car: # thuộc tính lớp loaixe = "Ô tô" # thuộc tính đái t°ợng def __init__(self, tenxe, mausac, nguyenlieu): self.tenxe = tenxe self.mausac = mausac self.nguyenlieu = nguyenlieu # instantiate the Car class toyota = Car("Toyota", "Đß", "Đián") lamborghini = Car("Lamborghini", "Vàng", "Deisel") porsche = Car("Porsche", "Xanh", "Gas") # access the class attributes print("Porsche là {}.loaixe)) print("Toyota là {}.loaixe)) print("Lamborghini cũng là {}.loaixe)) # access the instance attributes print("Xe {} có màu {}. {} là nguyên liáu vÁn hành.nguyenlieu)) print("Xe {} có màu {}.
{} là nguyên liáu vÁn hành.nguyenlieu)) print("Xe {} có màu {}.