



















Preview text:
lOMoAR cPSD| 45734214 10/9/2023
LẬP TRÌNH PYTHON TỪ CƠ BẢN ĐẾN NÂNG CAO
Thực hiện: Trần B nh Long
CHƯƠNG 1 LẬP TRÌNH PYTHON 1. Giới thiệu Python 2. Từ khóa và ịnh danh
3. CÆch viết c u lệnh, thụt lề và chú th ch 4. Kiểu dữ liệu
Lịch sử của Python
Python l ng n ngữ lập trình ược tạo bởi Guido Van
Rossum v o cuối những năm 1980, ược phÆt h
nh lần ầu tiên vào tháng 2 năm 1991.
Python kh ng phải tŒn rắn thần Python trong thần
thoại Hy Lạp. Python ược ặt tŒn trong sŒ-ri
“Monty Python‟s Flying Circus”, chương tr nh h i cuối những năm 1970 1 lOMoAR cPSD| 45734214 10/9/2023
Đặt tính của Python
Ngôn ngữ lập trình ơn giản, dễ học: Python c cœ
pháp rất ơn giản, rı r ng, dễ ọc và viết hơn so với C++, Java, C#.
Miễn phí, mã nguồn mở: tự do sử dụng và phân phối Python.
Khả năng di chuyển: chương trình Python có thể
chạy trên các nền tảng khÆc nhau như Windows, macOS, Linux.
Khả năng mở rộng và có thể nhúng: c thể kết hợp
code C, C++ và những ngôn ngữ khÆc v o code
Python, khả năng scripting.
Đặt tnh của Python
Ngôn ngữ thông dịch cấp cao: với Python kh ng
cần quản lý bộ nhớ, thu dọn dữ liệu,... Python tự ộng
chuyển ổi code sang ngôn ngữ máy t nh. Thư viện
tiêu chuẩn lớn ể giải quyết những tác vụ phổ
biến: Python c số lượng thư viện lớn giœp việc lập tr
nh dễ d ng, kh ng cần viết nhiều code.
V dụ: cần kết nối cơ sở dữ liệu MySQL, nhập thư viện MySQLdb.
Hướng ối tượng: Python l hướng ối tượng (OOP)
giúp giải quyết những vấn ề phức tạp một cách trực quan. 2 lOMoAR cPSD| 45734214 10/9/2023
Ứng dụng của Python
Lập trình ứng dụng web: c thể tạo web app:
Django, Flask, Pyramid, Plone, Django CMS. CÆc
trang như Mozilla, Reddit, Instagram và PBS ều viết bằng Python.
Khoa học và tính toán: nhiều thư viện cho khoa học
và tính toán số liệu: SciPy v NumPy.
EarthPy cho khoa học trái ất, AstroPy cho ThiŒn
văn học,... Ngo i ra, c n machine learning, khai thÆc
dữ liệu và deep learning.
Ứng dụng của Python
Tạo nguyên mẫu phần mềm: Python chậm hơn so
với C++ v Java. Nhưng Python là ngôn ngữ ể tạo
những nguyên mẫu (bản chạy thử - prototype).
Ví dụ: døng Pygame (thư viện viết game) tạo
nguyŒn mẫu game trước. Sau ó dùng C++ ể viết game.
Ngôn ngữ tốt ể dạy lập trình: Python ược nhiều c
ng ty, trường học sử dụng do cú pháp ơn giản và dễ døng.
Python trở nên phổ biến Cú pháp ơn giản: 3 lOMoAR cPSD| 45734214 10/9/2023
Lập trình bằng Python dễ dàng, dể hiểu. Cú pháp của
Python giống với ngôn ngữ tự
nhiŒn, ví dụ a = 2 b = 3 tong = a + b print(tong)
Có thể oán ược oạn code n y: cho hai số a, b, tính tổng và in ra tổng.
Python trở nên phổ biến
Không quá khắt khe:
Không cần xác ịnh kiểu của biến, kh ng cần dấu
chấm phẩy vào cuối câu lệnh. Python yêu cầu tu n
theo những bài tập có sẵn, giœp việc học Python dễ d ng. Viết code ít hơn:
Python cho phép viết chương trình có nhiều chức
năng với ít dòng code hơn.
Cộng ồng lớn, hỗ trợ tốt:
Có cộng ồng hỗ trợ rộng lớn, nhiều diễn àn hoạt
ộng trực tuyến trợ giœp khi gặp vấn ề trong Python
Cài ặt Python trŒn Windows
Tải Python: https://www.python.org/downloads/, chọn phiŒn bản cần. 4 lOMoAR cPSD| 45734214 10/9/2023
Nhấp úp vào file vừa tải về ể cài ặt. C 2 tøy chọn, chọn một ể c i.
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: chọn vị trí cài và t nh năng cần thiết. 5 lOMoAR cPSD| 45734214 10/9/2023
Cài ặt Python trŒn Windows
Mở IDLE, tạo file mới trong IDLE, click File\New
Windows hoặc nhấn tổ hợp phím Ctrl + N. Sao chép oạn code: print("Xin ch o!")
V o file vừa tạo, nhấn Ctrl + S ể lưu, ặt tŒn, file sẽ có
uôi là .py, ví dụ: test_python.py.
Nhấn Run\Run module hoặc F5 ể xem kết quả B I TẬP 1. print "Hello World!" 2. print "Hello Again"
3. print "I like typing this." 4. print "This is fun." 5. print ’Yay! Printing.’
6. print "I’d much rather you ’not’."
7. print ’I "said" do not touch this.’ 6 lOMoAR cPSD| 45734214 10/9/2023 Từ khóa và ịnh danh
Python có từ khóa (keyword) và ịnh danh (identifier)
như các ngôn ngữ lập trình khác.
Những quy tắc cơ bản về keyword và ịnh danh.
Keyword của Python
Kh ng døng keyword ể ặt tên cho biến, hằng hay ịnh danh.
Ngoại trừ True, False và None ược viết hoa, cÆc
keyword khÆc viết chữ thường.
Danh sÆch các từ khóa trong Python: (Python 3.0, cÆc
phiên bản mới hơn có thêm keyword bổ sung) Từ khóa (Keyword) False finally class is return None continue for lambda from try True def nonlocal global while and del elif not or if with as else pass import yield assert except raise in break 7 lOMoAR cPSD| 45734214 10/9/2023 Định danh
Định danh l tŒn ặt cho các thực thể như class,
function, biến,..., giœp phân biệt cÆc thực thể với
nhau. Quy tắc viết ịnh danh:
Định danh kết hợp chữ cái viết thường (a - z), viết hoa
(A - Z), số (0 - 9), dấu gạch dưới (_).
Ví dụ: bien_1, tinh_tong_0_9, firstClass.
Định danh không bắt ầu bằng số.
Ví dụ: 1bien l sai, bien1 thì úng. Định danh
Định danh phải khác các keyword.
Ví dụ: and = 1 chương trình sẽ báo lỗi
"SyntaxError: invalid syntax". (and l keyword)
Định danh không hỗ trợ các ký tự ặc biệt: !, @, #, $,
%,.... Nếu gán sẽ nhận bÆo lỗi "SyntaxError: invalid
syntax" hoặc "NameError:...“ Định danh có ộ d i tøy .
Định danh lớp (class) thường bắt ầu với chữ cÆi hoa.
Các ịnh danh khác bắt ầu với chữ cái thường. Định danh
Định danh bắt ầu với một dấu dạch dưới _ l ịnh danh private. 8 lOMoAR cPSD| 45734214 10/9/2023
Định danh bắt ầu với 2 dấu gạch dưới __ thì mức ộ private cao hơn.
Định danh bắt ầu và kết thúc bằng 2 dấu gạch dưới
(__init__) l ịnh danh ặc biệt ược Python ịnh nghĩa.
NŒn ặt tên ịnh danh có nghĩa.
Ví dụ: c = 10 vô nghĩa, nhưng count = 10 rı nghĩa v dễ hiểu hơn. Định danh
Định danh c phân biệt chữ hoa, chữ thường.
Ví dụ: bien v Bien l khÆc nhau.
Định danh nhiều từ, døng dấu gạch dưới giữa các từ, vd: day_la_mot_vi_du.
Hoặc viết hoa từng từ DayLaMotViDu ể phân biệt các
từ trong trường hợp tên ịnh danh d i.
CÆch viết lệnh Câu lệnh trong Python
CÆc d ng hướng dẫn ể tr nh th ng dịch Python thực
hiện ược gọi là các câu lệnh. Ví dụ, count = 0 là lệnh
gÆn. Hay các dòng khác như: lệnh if, lệnh for, lệnh while,...
Viết câu lệnh trên nhiều dòng 9 lOMoAR cPSD| 45734214 10/9/2023
Câu lệnh ược kết thúc khi xuống d ng. Muốn viết c u
lệnh trên nhiều dòng døng ký tự (\). V dụ sum = 1 + 3 + 5 + \ 7 + 9 + 11 + \ 13 + 15 + 17
CÆch viết lệnh
Hoặc dùng dấu ngoặc ơn (), ngoặc vu ng [ ] hay
ngoặc nhọn { }. V dụ: sum = (1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17) mau_sac = {"v ng", "xanh", "cam"}
C thể viết nhiều lệnh trên cùng một dòng, phân cách
nhau bởi dấu chấm phẩy ; ví dụ: a = 1; b = 2; c = 3 Thụt lề Thụt lề trong Python
Trong C, C++ hay Java sử dụng cặp { } ể xác ịnh các khối lệnh.
Trong Python, khối lệnh ược xác ịnh th ng qua thụt lề.
Trong Python, nếu thụt hoặc thò nhầm sẽ bị báo lỗi. 10 lOMoAR cPSD| 45734214 10/9/2023
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 kh ng thụt lề.
Thụt lề phải nhất quán trong suốt khối lệnh, cÆc
lệnh trong cùng một khối phải c ộ thụt lề bằng nhau. Thụt lề Thụt lề trong Python
4 lần phím cách ể thụt lề ược hay døng hơn phím tab, ví dụ: for i in range(1,11): print(i) if i == 5: break
Khối lệnh của for gồm print(i), if ược viết thụt lề bằng
nhau, break là lệnh trong if, ược thụt lề thêm oạn nữa. Thụt lề
Nếu lệnh trên ược viết: for i in range(1,11): print(i) if i == 5: break 11 lOMoAR cPSD| 45734214 10/9/2023
Sẽ nhận ược thông báo lỗi, và lỗi sẽ hiện trước lệnh print(i). Thụt lề
Câu lệnh viết trŒn một d ng không cần thụt lề. Tuy
nhiên, viết dạng thụt lề nh n dễ hiểu hơn. Ví dụ: if True: print(’Xin ch o!’) q = 10 v
if True: print(’Xin ch o!’); q = 10
Cả hai cách viết trên ều úng và thực hiện công việc
như nhau, nhưng cÆch viết ầu nhìn dễ hiểu hơn. Chœ th ch
Chú thích, bình luận trong Python
Chœ th ch ể người viết code giao tiếp với người ọc,
là phần không thể thiếu trong chương trình, m tả iều 12 lOMoAR cPSD| 45734214 10/9/2023
ang xảy ra trong chương tr nh ể người ọc kh ng tốn
nhiều thời gian tìm hiểu, suy oán.
Khi nhiều chương tr nh ược viết cùng lúc, an xen
nhau, sự nhầm lẫn hoặc quên chi tiết quan trọng của
oạn code ã viết là không tránh khỏi. Do ó những chú
thích, bình luận rất quan trọng. Chœ th ch
Trong Python, k tự # ể bắt ầu một chú th ch. Khi
thông dịch, Python sẽ bỏ qua những chú thích n y.
#Đây là chú thích #In dòng chữ DaiHocLacHong print(„DaiHocLacHong')
Chœ th ch viết trŒn cùng một dòng với lệnh hoặc biểu thức.
print(„DaiHocLacHong’) #Đây là chú th ch In dòng chữ DaiHocLacHong Chœ th ch
Chœ th ch trên nhiều dòng, thŒm # vào trước mỗi d ng # Đây l chœ th ch # trŒn nhiều d ng 13 lOMoAR cPSD| 45734214 10/9/2023
# In dòng chữ DaiHocLacHong # trong Python print(„DaiHocLacHong’) Chœ th ch
Døng 3 dấu nháy ơn ' ' ' hay nhÆy kØp " " ". CÆch n y
ược sử dụng ể viết chú thích trên nhiều dòng. Lưu ý:
câu lệnh Docstring cũng dùng ba dấu nháy kép. """Đây là chú thích trŒn nhiều d ng In dòng chữ DaiHocLacHong trong Python""" Docstring
Docstring (Documentation string): c u lệnh ầu tiên
trong mô un, hàm, ịnh nghĩa method, mô tả công việc mà hàm, lớp sẽ l m.
Ba dấu nháy kép ược døng ể viết docstring ví dụ def nhandoi(num):
""“Hàm nhân ôi giá trị""" 14 lOMoAR cPSD| 45734214 10/9/2023 return 2*num Docstring
Docstring xuất hiện dưới dạng thuộc tính __doc__ của
h m. Để xem docstring sử dụng lệnh print() như sau print(nhandoi.__doc__) Kết quả: Hàm nhân ôi giá trị Biến
Biến là vị trí trong bộ nhớ ược døng ể lưu trữ dữ liệu
(giÆ trị). Biến ược ặt tên duy nhất ể phân biệt với cÆc biến khÆc.
Quy tắc viết tŒn biến giống như quy tắc viết ịnh danh.
Không cần khai bÆo biến trước khi sử dụng, chỉ cần
gán cho biến một giá trị và nó ược xác ịnh.
Không cần khai bÆo kiểu, kiểu ược nhận tự ộng dựa v
o giÆ trị ã gÆn cho biến. 15 lOMoAR cPSD| 45734214 10/9/2023 Biến
Gán giá trị cho biến:
Để gán giá trị cho biến døng toán tử = .Bất kỳ giÆ
trị nào cũng có thể gán cho biến. Ví dụ
truong = „Lạc Hồng‟ coso = 1 lau = 3.5
Trong 3 lệnh gÆn, “Lạc Hồng" l chuỗi ký tự, ược gÆn
cho biến truong, 1 là số nguyŒn, ược gÆn cho coso,
3.5 là số thập ph n ược gÆn cho lau. Biến Gán nhiều giá trị:
Có thể gán nhiều giá trị trong một lệnh như sau:
truong, coso, lau = „‟Lac Hồng", 1, 3.5
GÆn giÆ trị giống nhau cho nhiều biến: truong, coso, lau = 1
Lệnh trên sẽ gán giá trị 1 cho cả 3 biến là truong, coso v lau. 16 lOMoAR cPSD| 45734214 10/9/2023 Kiểu số
Các kiểu dữ liệu số trong Python
Số nguyên, số thực và số phức, lần lượt ược ịnh nghĩa
int, float, complex.
Số nguyŒn và số thực ph n biệt bằng dấu thập phân.
Ví dụ: 9 là số nguyên, 9.0 là số thực.
Số phức sử dụng hậu tố j hoặc J ể chỉ phần ảo. Ví dụ:
1+4j . Ngo i int v float, Python hỗ trợ thŒm 2 loại số
nữa là Decimal v Fraction.
H m type() kiểm tra biến hoặc giá trị thuộc lớp số n o v
h m isinstance() kiểm tra chúng thuộc class cụ thể n o. Kiểu số >>> a = 5 print(type(a)) # Output: print(type(5.0)) # Output: >>> b = 8 + 2j print(b + 2) # Output: (10+2j)
# Kiểm tra b c phải l số phức không print(isinstance(b, complex)) # Output: True 17 lOMoAR cPSD| 45734214 10/9/2023 Kiểu số
Số nguyên trong Python kh ng giới hạn ộ dài,
Số thực có giới hạn 15 số sau dấu thập phân. Ngo
i hệ thập phân còn có hệ thống nhị ph n, bÆt ph n v thập lục phân.
Để biểu diễn những hệ số này cần ặt một tiền tố trước số ó.
Tiền tố hệ số cho các số Python Hệ thống số Tiền tố Hệ nhị phân '0b' hoặc '0B' Hệ bát phân '0o' hoặc '0O'
Hệ thập lục phân '0x' hoặc '0X' Kiểu số
Ví dụ døng các tiền tố hệ số trong Python, h m print()
in ra m n h nh số tương ứng trong hệ số 10.
>>> print(0b10111011) # Output: 187 print(0xFA + 0b111) # Output: 257 (250 + 7) print(0o17) # Output: 15 18 lOMoAR cPSD| 45734214 10/9/2023
Chuyển ổi giữa các kiểu số
CÆc phØp toÆn cộng, trừ sẽ ngầm chuyển ổi số
nguyên thành số thực (ổi tự ộng) nếu có một toán tử
trong phép toán là số thực.
V dụ: cộng số nguyŒn 5 v số thực 1.0, kết quả trả về sẽ là số thực 6.0 >>> 5 + 1.0 6.0 19 lOMoAR cPSD| 45734214 10/9/2023
Chuyển ổi giữa các kiểu số
Døng cÆc h m t ch hợp sẵn: int(), float(), complex()
ể chuyển ổi giữa các kiểu số. >>> int(3.6) 3 >>> int(-1.2) -1 >>> float(7) 7.0
>>> complex(’2+8j’) (2+8j)
Khi chuyển từ số thực sang số nguyên, chỉ lấy phần
nguyŒn bỏ phần thập phân. M -un Decimal
Class float trong Python.
Nếu tính tổng 3.4 + 4.3 v gÆn kết quả là 7.7. Sẽ nhận kết quả l False.
>>> (3.4 + 4.3) == 7.7 False
Do giới hạn của mÆy t nh. 20