Đường vào lập trình Python (Nguyễn Ngọc Giang)

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn: Sưu tầm
Người gửi: Trần Văn Lâm
Ngày gửi: 20h:38' 13-03-2026
Dung lượng: 57.2 MB
Số lượt tải: 1
Nguồn: Sưu tầm
Người gửi: Trần Văn Lâm
Ngày gửi: 20h:38' 13-03-2026
Dung lượng: 57.2 MB
Số lượt tải: 1
Số lượt thích:
0 người
T S . N GU YỄN NGỌC GIANG.
Tiến Sĩ chuyên ngành LI luận
& Phương pháp dạy hpc Bộ
mồn toán. Cao hgc chuyên
ngành Khoa học máy tinh,
Cừ nhân Ngữ Văn Anh. Anh
là học sinh Khóa I chuyên tin
Khôi phô' thòng chuyên loán - tin, Đại học Sư
phạm Vinh, Nghệ An.
Anh hiện là giàng viên Trưòng Đại học Ngân
hàng TP. Hổ Chl Minh; tác giả cùa hon 40 Đấu
sắch vé toán, tin, vặt li và tiếng Anh. Anh có
hàng chục bài viết trẽn tạp chi Tin hpc & nhà
trường Ngoài ra vốn là người giàu cảm xúc.
anh cũng là tấc già cùa cuốn tha "Giọt gió treo
cành năng".
Môt số cuốn sách tin hoc gây được tiếng vang
trong cộng đống là: Khám phá trong giải toán
phố thông bàng các phuong phấp toán - tin;
Sang tao trong toán lặp trinh, Tích hợp toán,
tin vá vật I I . ...
ThS.
PHAN
XUÂN
VỌNG.
Thạc s ĩ chuyên ngành Khoa
hợc máy tinh, Cừ nhãn sư
phạm toán. Anh là giáo viên
trường chuyên Đại hoc Vinh,
có nhiẽu năm kinh nghiệm
chuyên dạy cho đội tuyển
tham dư kì thiH qc sinh giòi quôc gia mõn
tin
hQC Anh cũng lẳ hoe sinh Khóa I chuyên tin
Khối phò thóng chuyên toán - tin, Đại học Sư
pham Vinh. Mghè An
L a
N G U YẺN QUỐC ANH Cứ nhân
chuyên ngành Hè thống Điện.
1
Có nhiều nghiên cứu chuyèn
sâu vé Còng nghê thõng
tin
Đã xuất bán một số bài bâo
cùng n hư sach vé Toán - Tin và ứng dung Tin
hoc trong Toan lioc
TS. NGUYÊN NGỌC GIANG (Chủ biên)
ThS. PHAN XUÂN VỌNG - NGUYÊN QUỐC ANH
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
(Một ừotig những ngôn ngữ lập trình chính, phổ biến nhất
của AI, Machine Leaming, Data Mining, Deep Leaming
và môn Tin học trong chương trình Giáo dục phô'thông mói)
N H À XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI
MỤC LỤC
LỜI NÓI ĐẤU....................................................................................................5
Chương 1. MỞ ĐẨU................................................................................................. 7
Chủ đé 1. Giới thiệu vể lập trinh Python................................................... 7
Chủ để 2. Cài đặt Python và các phần mém liên quan...............................9
Chương 2. LẬP TRÌNH PYTHON c ơ BẢN.............................................................. 15
Chủ đề 3. Vào/ra dữ liệu từ thiết bị chuẩn............................................... 15
Chủ đé 4. Biến và gán giá trị cho biến....................................................23
Chủ đê 5. Kiểu dữ liệu số .......................................................................30
Chủ đề 6. Cấu trúc rẽ nhánh................................................................... 41
Chủ đé 7. Cấu trúc lặp......................................................................... 58
Chủ để 8. Kiểu dữ liệu chuỗi................................................................... 75
Chủ đé 9. Một số thao tác trên chuỗi...................................................... 92
Chủ đê 10. Kiéu dữ liệu danh sách - List..............................................112
Chù đề 11. Một số vấn đé nâng cao vê danh sách............................... 130
Chủ đé 12. Kiểu dữ liệu bộ - Tuple........................................................154
Chủ đê 13. Kiểu dữ liệu tập hợp - Set...................................................166
Chủ đé 14. Kiểu dữ liệu từ điển - Dict................................................... 181
Chủ đề 15. Kiểu dữ liệu tệp.................................................................. 194
CKiương 3. MỘT s ố CHỦ ĐÉ PYTHONNÂNG CAO............................................... 210
Chủ đé 16. Chương trinh con................................................................ 210
Chủ đê 17. Chương trình con đệ quy, đệ quy quay lui
và đệ quy có nhd............................................................... 229
Chủ đề 18. Kiểu dữ liệu lớp - Class..................................................... 251;'
4
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Chủ đê 19. Modunles và Packages..................................................... 266
Chủ đề 20. Modunle queue và cấu trúc dữ liệu hàng đợi, ngăn xếp,
hàng đợi ưu tiên..................................................................277
Chủ đê 21. Xử lý
ngoại lệ - Exceptions.............................................. 310
Chủ đẽ 22. Đố họa cùng với Tkinter.....................................................318
TÀI LIỆU THAM KHẢO ....................................................................................347
LỞI NÓI ĐẦU
Cuộc cách mạng công nghệ 4.0 đã và đang làm thay đổi mọi lĩnh
vực khoa học và đời sống. Các ngành nghề dựa vào thành quả cùa lĩnh
vực công nghệ cao như Công nghệ Nano, Công nghệ Sinh học và đặc
biệt là Công nghệ Thông tin ngày càng phát triển vượt bậc cả về lượng
lẫn về chất. Đe góp phần cho ngành Công nghệ thông tin có ảnh
hường mạnh mẽ như vậy, thì việc lựa chọn ngôn ngữ lập trình trong
các lĩnh vực mũi nhọn như Trí tuệ nhân tạo (AI), học máy (Machine
Leaming), khai phá dữ liệu (Data Mining), học sâu (Deep Leaming)
trờ nên vô cùng quan trọng và cần thiết. Một trong những ngôn ngữ
đáp ứng được hầu hết các tiêu chí của tất cả nhà lập trình khó tính nhất
đó chính là ngôn ngữ lập trình Python.
Ngôn ngữ lập trình Python có nhiều ưu điểm nổi trội như dễ nhớ,
dễ viết, khả năng xử lí số liệu lớn, phức tạp rất tốt, thư viện có nhiều
hàm, đáp ứng được nhiều kiểu dữ liệu mới của Machine Leaming, AI,
Data Mining, Deep Leaming. Ngày nay, máy tính có khả năng tự học
mà không cần phải lập trình một cách rõ ràng. Ngành Khoa học máy
tính hiện cỏ nhiều ứng dụng sâu rộng vào cuộc sống hằng ngày như
đánh cờ, nhận diện khuôn mặt, chẩn đoán y khoa, phát hiện thẻ tín
dụng giả, dự đoán kết quả trận đấu, nhận diện giọng nói, phân loại các
chuẩn DNA, tóm tắt văn bản, trả lời tự động,... Chính vì thế, ngôn
ngữ lập trình Python giờ đã trờ thành một yếu tố không thể thiếu khi
nhắc đến AI, Machine Leaming, Data Mining, Deep Leaming và
ngược lại.
Ngôn ngữ lập trinh Python vừa đáp ứng được yêu cầu của các bài
toán lập trình cổ điển trước đây và các bài toán lập trình mới. Tuy
nhiên, các tài liệu về lập trình Python ở nước ta còn thiếu. Đó là rào
cản lớn cho những bạn muốn sử dụng ngôn ngữ này trong lập trinh.
Ngoài ra, sắp tới ngôn ngữ lập trình Python sẽ được đưa vào giảng dạy
trong chương trình Giáo dục phổ thông môn Tin học nên việc biên
6
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
soạn tài liệu có chất lượng về Python cho các em học sinh là một việc
làm rất cấp thiết. Cuốn sách “Đường vào lập trình Pytìíon" là sản
phẩm “thai nghén” trong một thời gian dài vừa viết, vừa phàn biện sao
cho thành phẩm cuối cùng được ưng ý nhất. Cuốn sách có 22 chù đề
được viết theo lối viết sư phạm. Ngoài chương 1 là chương về kiến
thức mở đầu ra thì các chương còn lại có cấu trúc chung như sau:
A. Đặt vấn đề
B. Bài tập ôn luyện
c . Thuật toán và hướng dẫn giải
Nội dung cuốn sách bàn về những vấn đề cơ bàn cùa lập trinh
như cấu trúc lặp, kiểu dữ liệu chuỗi,... cũng như những vấn đề nâng
cao, hiện đại như quay lui, hàng đợi, ngăn xếp, đồ họa, kiểu dữ liệu từ
điển,... Chính vì thế, cuốn sách đáp ứng được mọi nhu cầu từ thắp đến
cao, từ đom giản đến phức tạp cùa tất cả các em học sinh Phổ thông
Trung học, sinh viên, học viên cao học ngành Khoa học máy tính, quý
thầy cô và nhà nghiên cứu muốn tìm hiểu về ngôn ngữ lập trình
Python. Những ai quan tâm đến lập trình Python đều tìm thấy nhiều
điều bồ ích từ cuốn sách này.
Mặc dù được biên soạn cẩn thận, tuy nhiên cuốn sách khó có thể
tránh khòi thiếu sót. Mọi ý kiến của quý độc giả về cuốn sách xin được
gửi về cho chúng tôi theo địa chi: Ỏng Nguyễn Ngọc Giang, Giàng viên
Trường Đại học Ngân hàng Thành phố Hồ Chí Minh, 36 Tôn Thất Đạm,
Phường Nguyễn Thái Bình, Quận 1, Thành phố Hồ Chí Minh. Điện
thoại: 0908576218; Email: nguyenngocgiang.net@gmail.com.
Chủng tôi trân quý mọi góp ý của quý bạn đọc và xin chân thành
cảm ơn!
Thay mặt nhóm tác giả
TS. Nguyễn Ngọc Giang
Chương 1. MỞ ĐẦU
CHỦ ĐỂ 1. GIỚI THIỆU VỂ LẬP TRÌNH PYTHON
1. Tại sao lại là lập trình Python?
Ngôn ngữ lập trình Python được Guido van Rossum, lập trình
viên nôi tiếng người Hà Lan viết, phiên bản đầu tiên được phát hành
vào năm 1991. Hiện nay, Python đã phát triển đến các phiên bản 3.X.X.
Python chạy được trên nhiều nền tảng khác nhau như Windows,
Mac os, Linux, Raspberry Pi,... Python được thiết kế với ưu điểm
vượt trội là dễ đọc, dễ học và dễ nhớ; cỏ cấu trúc lệnh đom giản nhưng
rất hiệu quả, phần lớn các cầu lệnh được viết tương tự như ngôn ngữ
tiếng Anh. Python còn cung cấp phong phú các thư viện, mô-đun cho
phép làm việc thuận lợi về trí tuệ nhân tạo (Artiíĩcial Intelligence AI), phân tích dữ liệu lớn (Big Data - BG), học máy (Machine
Leaming - ML), làm việc được hầu hết với các cơ sờ dữ liệu. Triết lý
căn bản khi thiết kế Python được nhóm thiết kế đưa ra:
“Đẹp đẽ tốt hơn xấu xí
Minh bạch tốt hơn che đậy
Đom giản tốt hơn phức tạp ...”
Chính vì có nhiều ưu điểm như trên, nên đã có nhiều kỹ sư phần
mềm lựa chọn Python cho công việc của mình. Nhiều công ty đã sử
dụng ngôn ngữ lập trinh này để phát triển phần mềm như Google,
Yahoo, CERN, NASA...
2. Sách này dành cho ai?
Mục tiêu của cuốn sách nhằm cung cấp một khóa học nhanh và
đầy đủ nhất có thể cho bạn đọc về lập trinh Python. Cuốn sách đề cập
8
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
từ những kiến thức cơ bản đến những vẩn đề nâng cao. Cung cấp cho
người học những vấn đề cốt lõi của Python, để từ đó có thể lập trình
xử lý những công việc riêng của mình.
Cuốn sách được thiết kế theo định hướng chương trình phổ thông
2018, do vậy rất phù hợp với các em học sinh cấp trung học cơ sờ,
trung học phổ thông; học sinh chuyên tin; sinh viên năm nhất các
trường cao đẳng, đại học chuyên ngành Công nghệ thông tin (CNTT).
Ngoài ra, sách cũng rất phù hợp với các bạn muốn tự học lập trình cho
mục đích riêng của mình.
3. Để học Python cần chuẩn bị nhữhg gì?
Để có thể tiến hành học, các bạn sẽ cần chuẩn bị:
+ Một máy vi tính có cài sẵn hệ điều hành (Linux, Mac
Windows đều được).
os hay
+ Một trình biên dịch Python. (Trong nội dung cuốn sách này tác
giả sử dụng phiên bản 3.7.2, 64 bit).
+ Một trình Text Editor (Geany, Visual Studio Code, Sublime
Text...).
Việc cài đặt các công cụ liên quan trên từng hệ điều hành sẽ được
hướng dẫn chi tiết cho bạn đọc ở phần kế tiếp của cuốn sách.
9
Chương 1. Mở đầu
CHỦ ĐỂ 2. CÀI ĐẶT PYTHON VÀ CÁC PHẨN MỂM LIÊN QUAN
I. Cài dăt Python
1. Cài đặt Python trẽn Windows
Bưóc 1. Truy cập vào trang: https://www.python.org
Bước 2. Click vào nút Downloads, rồi nhấn vào Windows để tải
fìle cài đặt Python.
Oownloads
(>'"
Bấm vào nút lệnh Python 3.7.4 để tải về, ta có tệp.
ặ python-3.7^
Nếu muốn lựa chọn phiên bản khác, chọn View the íiỉll list of
downloads.
Ngoài ra, ta có thể tải bộ cài đặt excuíable ỉnstaller phù hợp với
phiên bản Windows đang sử dụng (32/64 bit)
Bước 3. Cài đặt
- Nhấn đúp vào file vừa tải về.
- Tích vào ô: Add Python 3.7 to PATH
- Chọn Install Now
10
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
I ■ Instal launcher for ail users (reccxnmended)
■ Add Pythoo 3.7 to PATH
Bước 4. Chờ đợi quá trình cài đặt diễn ra, khoảng 30s.
Setup Progress
InstaSng:
Python 3.7.4 Devetopment Libranes (32-bit)
11
Chương 1. Mở đầu
Setup was successíul
spedai thanks to M art Hammond. wĩthout w bose years ai
freety shared Windows expertise. Python fòr Wĩndows woufd
stiĐ be Python for DOS.
New to Pyứxxi? Start **th the onếne tirtorial and
djọgj™eo.lat»ọnSee w hat's new in thẽs rdease.
Nhấn Close để hoàn thành quá trình cài đặt.
Bước 5. Kiểm tra lại.
Vào cửa số lệnh Run và gõ cmd.
Nhẩn Enter hoặc nhấn OK, một cửa sồ hiện ra, ta gõ python vào
dấu nhắc lệnh sau đó nhấn tiếp Enter:
12
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Kiểm tra
❖ Chú ý
- Trong một số trường hợp báo lỗi, f pythonJ
is
not
recognized as an in t e r n a l or e x te rn a l command, operable
program o r batch f i l e . Đây là lỗi chưa đăng kí biến đường dẫn
(path variable) cho python.exe. Lỗi này là do không chọn ô A d d
P y th o n 3.7 to PATH. Trong trư ờng hợ p này, đăn g kí lại biến
m ôi trư ờ ng (Environment Variables) hoặc cài lại và làm đầy đ ủ
n h ư hư ớ ng dẫn trên.
- Gõ lệnh exitộ hoặc Ctrl+D để thoát lệnh python3.
- Việc cài đặt Python trên các hệ điều hành Mac
được thực hiện tương tự.
os
và Linux
II. Cài dặt một trình biên tập
1. Khái niệm "Trình biên tập"
Trinh biên tập (Text Editor) là một phần mềm hỗ trợ soạn thảo,
chinh sửa, biên tập và lưu trữ chương trình. Nội dung dưới đây sẽ đề
cập tới một số trình biên tập dùng để biên tập, chinh sửa và hỗ trợ
chạy (thực thi) mã nguồn Python.
2. Một s ố trình biên tập thông dụng
Hiện nay có rất nhiều những trình biên tập khác nhau bao gồm cả
miễn phí và trả phí. Trong nội dung cuốn sách này, chúng ta sẽ đề cập
đến hai trình biên tập hỗ trợ cả 3 nền tảng Windows, Linux và cả Mac
o s , với rất nhiều tính năng thông dụng hiện nay đó là Sublime Text
và Visual Studio Code.
13
Chương 1. Mở đáu
3. Cài đặt Sublime Text
Bước I. Truy cập địa chì: https://www.sublimetext.eom/3
Chọn phiên bản phù hợp với hệ điều hành của bạn và tiến hành
cài đặt.
Bước 2. Tùy chinh lại Sublime Text để có thể biên dịch được mã
nguồn Python bằng cách: Tools -* Build System -» Python.
4. Cài đặt Visual studio Code
Bước 1. Truy cập địa chi: https://code.visualstudio.com/download
Chọn phiên bản phù hợp với hệ điều hành của bạn và tiến hành
cài đặt.
Bước 2. Tùy chinh lại Visual Studio Code để có thể biên dịch
được mã nguồn Python.
III.Chạy thử chương trình dầu tiên
Trong cuốn sách này, các chương trinh nguồn được viết trên trình
biên tập Sublime Text.
Mờ Sublime Text lên và gõ lại đoạn code sau, lưu lại dưới tên
“Chaoban.py”:
C hao ban
£ F in i s h e d i n
0 - ls J
Kết quả
14
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Sau khi lưu lại bấm “C trl 4- B” đối với máy sử dụng hệ điều hành
Windows hoặc Linux, và bấm “Comand + B” đối với máy sừ dụng hệ
điều hành Mac o s .
> Chạy chưtmg trình từ dòng lệnh
Chương trình Python có thể thực hiện từ dòng lệnh như sau:
- Mở cửa sổ dòng lệnh bằng cách chạy chương trinh cmd.exe
- Sau đỏ nhập lệnh python [đường dẫn]\Chaoban.py và bấm Enter.
B
> Viết chương trình từ Python Shell
Để soạn thảo và chạy chương trình Python ta cũng có thể sử dụng
môi trường
DLE (Python 3-732-bít)
❖ Chú ỷ
Một chương trình nguồn viết bằng Python có phần mở rộng là .py.
Khi thực hiện các chương trình này thì chương trình biên tập nhận diện
được đây là một chương trình Python. Sau đó sử dụng trình “thông dịch
Python" (Python Iníerpreter) để chạy chương trình.
Chương 2. LẬP TRÌNH PYTHON c ơ BẢN
CHÙ ĐỂ 3. VÀO/RA DỮ LIỆU TỪ THIẾT BỊ CHUẨN
A. KIẾN THỨC Cơ BẢN
Thiết bị chuẩn dùng để vào/ra dữ liệu trong máy tính là bàn phím
và màn hình. Trong bài này, ta sẽ đề cập tới các câu lệnh cho phép đưa
dữ liệu vào từ bàn phim và đưa kết quả ra màn hình.
1. Đưa kết quả ra màn hình
1.1. Câu lệnh
Câu lệnh: p r in t(< d a n h sách kết quả>)
Dùng để đưa các kết quả ra màn hình.
1.2. Một số ví dụ
Ví dụ 1. Chương trình:
p r i n t ("*•■)
p r i n t ("**")
p r i n t ( ,,***M)
p r i n t (•'****")
p rin t(" * * * * * " )
Kết quả:
*
**
***
****
*****
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 2. Chương trình:
p rin t("* \n * * \n * * * \n * * * * \n * * * * * M)
Kết quà:
*
**
***
****
*****
❖ Chú ỷ
Kí tự xuống dòng và về đầu dòng trong Python là '\n ';
Ví dụ 3. Chương trình:
X = "Chao mung ban den voi Python"
p rin t(x )
Kết quả:
Chao mung ban den vo i Python
Ví dụ 4. Chương trình:
print("Ngon ngu"/'Lap trin h ","P y th o n ")
Kết quả:
Ngon ngu Lap t r in h Python
❖ Nhận xét
Khi đưa nhiều kết quả trong câu lệnh p r i n t Q , ta sử dụng dấu
phẩy để phân cách giữa các kết quả.
2. Câu lệnh p r ỉn to với các tham số
A Tham số sep
Câu lệnh: p r in t (, ,... )
** Đưa n kết quả ra màn hình. Gác kết quả sẽ được đua ra trên
một dòng và giữa các kết quả là một khoảng trắng (white space).
17
Chương 2. Lập trình Python cơ bản
Ví dụ 5. Chương trình:
p r in tC a V b V c " )
tír Kết quả:
a b c
Đây là sự mặc định của tham số sep, nhưng ta cỏ thể thay đổi
điều này bằng thiết lập tham số se p này theo câu lệnh:
pnint( ,< k ê ì quả n>, sep = [nội dung giữa các kêì quả])
Như vậy tham số sep mặc định đó là sep =
Ví dụ 6. Chươrig trình:
p r i n t C a V b V c " , sep =
p r in t ( " a " j " b " ," c " , sep =
p r in t C a " ," b " ," c " , sep = “ ■')
print("a","b","c", sep = V )
Kết quả:
abc
a --b --c
a b c
a ,b ,c
Giải thích:
Câu lệnh 1: sep =
kết quả.
Câu lệnh 2: sep =
tức là rỗng, không có khoảng cách giữa các
do vậy sẽ có —giữa các kết quả.
Câu lệnh 3: sep = “ ”, tức là kí tự trắng, nên giữa các kết quả có
kí tự trắng.
Câu lệnh 4: sep =
do vậy sẽ có dấu
giữa các kết quả.
Tham số end
Câu lệnh:
print()
Khi thực hiện xong sẽ tự động xuống dòng và về đầu dòng mới.
Muốn in nhiều kết quả trên cùng một dòng, ta có thể sử dụng tham số
end.
print(, end = [nội dung cuõĩ mỗi kêỉ quả])
18
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 7. Chương trình:
p r in t ( " a " ,e n d = " ")
p r in t( " b " ,e n d = "+")
p rin t(" c " ,e n d = H\n")
p r i n t ( ”Tu hoe")
p r i n t ( ”Python")
Kết quả:
a b+c
Tu hoc
Python
Như vậy, tham số end mặc định bằng end = ' \ r T , kí tự xuống
dòng và về đầu dòng mới.
3. Nhập dữ liệu từ bàn phím
Câu lệnh:
in p u t ( )
Dùng để nhập một dãy kí tự từ bàn phím.
M ộ t s ô 'v í dụ
i
Ví dụ 8. Nhập một dãy kí tự và in ra màn hình.
Chương trình:
print("M oi nhap mot day k i tu ")
X = in p u tQ
p rin t("D ay k i tu duoc nhap ” ,x )
Ket quả chạy từ dòng lệnh cmd.exe
c I \ U I ' S \ f l dr i i n i í; t r a t o 1' > p y t h o n c : \ p v t h o n \ i » l m p . p y
M oi
Iilu ip
im t .
iltiự
u i
11(14
ỉ .• | I t I' .1,1. p ụ t lion
D au
Ki
tu
lUioc
r I ] 1. 11J
tu
Um;
l
1.1' i n l i
p y t lion
Ta có cách viết khác của câu lệnh ỉ n p u t ( )
X = input("Moi nhap mot day k i tu ")
p rin t("D a y k i tu duoc nhap ”,x )
Chương 2. Lập trình Python cơ bản
19
Ví dụ 9. Nhập hai số tự nhiên a và b. Đưa ra tổng a + b.
Chương trình:
a = in t(in pu t("N hap so a: " ))
b = in t ( in p u t ( “Nhap so b: " ))
p rint("Tong a + b: ”,a+b)
❖ Chú ý
Câu lệnh in p u t ( ) trà về một chuỗi kí tự, vì vậy khi muốn kết
quà trà ve là các sổ nguyên ta cần ép kiểu như trên. Ví dụ i n t ( “ 123”)
sẽ chuyên chuỗi ki tự “123 " thành số 123.
Đ ể chạy hai ví dụ trên, ta cần thực hiện chương trình ở ch ế
độ dòng lệnh.
4. Chú thích
Khi viết chương trình, để làm rõ ý nghĩa thực hiện của một số câu
lệnh nào đó, ta có thể sử dụng chú thích. Khi thực hiện chương trình,
trình thông dịch sẽ “bỏ qua " các dòng chú thích này.
Cách viết chú thích:
a) Chú thích trên một dòng
# nội dung cần chủ thích
Ví dụ 10. Chương trình:
X = "Tu hoc Python"
# Dua bien X ra man hinh
p r in t ( x )
Kết quả:
Tu hoc Python
b) Chú thích trên nhiều dòng
Để viết chú thích trên nhiều dòng, ta có thể sử dụng nhiều lần chú
thích một dòng hoặc thực hiện như sau:
Cách 1. Bắt đầu bàng 3 nháy đôi “““ và kết thúc bằng 3 nháy đôi
20
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Nội dung cần chú thích
»»»»
Cách 2. Bắt đầu bằng 3 nháy đơn
và kết thúc bằng 3 nháy đom ” '.
Ui
Nội dung cần chú thích
m
Ví dụ 11. Chương trình:
II II II
Python duoc xem la mot ngon ngu lap t r in h phu
hop vo i cac du an lon ve t r i tue nhan tao .
Cac cau lenh cua Python trong sang va ra t de su
dung.
II II II
X = "Tu hoc Python"
# Dua bien X ra man hinh
p r in t( x )
*■ Kết quà:
Tu hoc Python
B. BÀI TẬP ÔN LUYỆN
Bài tập 1
Dùng lệnh p r in t ( ) để in ra màn hình các hình vẽ sau:
a) Hình chữ nhật
Ạ***********
************
************
************
21
Chương 2. Lập trình Python cơ bản
b) Hình cây thông
*
* **
*****
*******
*********
***********
*
*
*
Bài tập 2
Sử dụng hàm in p u t ( ) nhập từ bàn phím hai số tự nhiên a và b.
Đưa ra hiệu a — b.
Bài tập 3
Hãy phân tích kết quả khi chạy chương trình dưới đây, sau đó
chạy chương trình để đối chiếu kết quả.
a = 10
b = 20
c = 30
p rin t(a ,b ,C jS e p =
print(a+b+c)
c . THUẬT TOÁN VÀ HƯỚNG DAN giải
Bài tập 1
a) Hình chữ nhật.
p r in t( "************")
p r ỉn t("************”)
p r in t("************")
p r in t("*♦******♦***")
end = ■'=")
22
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
b) Hình cây thông.
print("
*
")
print("
***
")
p rin t ("
** * * *
")
p rin t("
*******
•')
p r i n t c ********* ■
')
p r in t("***********")
p r in tc
*
")
printc
*
")
p rin t("
*
")
Bài tập 2
Chương trình:
a = int(input("N hap so tu nhien a: ■'))
b = int(input("N hap so tu nhien b: " ))
c = a + b
prin t("H ieu a - b = ", c)
Bài tập 3
Ket quả khi chạy chương trình:
10+20+30=60
Chương 2. Lập trình Python cđ bản
23
CHỦ ĐỂ 4. BIẾN VÀ GÁN GIÁ TRỊ CHO BIÍN
A. KIẾN THỨC Cơ BẢN
1. Khái niệm về biến
Biến (variable) là một đối tượng mà giá trị của nó có th ể thay đối
được khi thực hiện chương trình. Mỗi biêh đêu được đặt tên và cần
một lượng ô nhớ máy tính tương ứng đ ể lưu giá trị của nó. Trong
Python, mỗi biêh là một con trỏ chỉ đến ô nhớ chứa giá trị đã được
gán cho biêh dó.
Khác với các ngôn ngữ lập trinh khác, Python không có lệnh khai
báo biến mà có lệnh gán trục tiếp giá trị cho biến theo cách:
=
Các ô nhớ trong máy tính được đánh địa chì (số thứ tự) bắt đầu từ 0.
Đe lấy địa chi ô nhớ lưu trữ giá trị cùa một biến, ta dùng hàm ỉ d
(Tên biến).
2. Một sô' ví dụ về sử dụng biến
Ví dụ 1. Chương trình:
# Gan gia t r i cho bien X
X = "Tu hoc Python"
p r in t ( x )
p rin t(" D ia c h i o nho: ", id ( x ) )
Kết quả:
Tu hoc Python
Dia c h i o nho:
7940120
❖ Chú ý
Cùng một chương trình như trên, mỗi lần thực hiện, địa chi ô nhớ
của biến X có thể khác nhau.
24
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 2. Chương trinh:
X = "Tu hoc Python"
p rỉn t(" G ia t r i bien x : ” ,x )
p rin t(" D ia ch i 0 nho:
" ji d ( x ) )
X = "Da thay doi gia t r i "
p rin t(" G ia t r i bien x : M,x )
p r i n t ( ”Dia ch i o nho:
" ,id ( x ) )
Kết quả:
Gia
tri
bien x: Tu hoc Python
Dia
ch i o nho:
19933168
Gia
t r i bien x:
Da thay doi g ia t r i
Dia
ch i o nho:
20110560
❖ Nhận xét
Trong chương trình trên, ta nhận thấy rang, cùng một biến X
nhưng có hai địa chi khác nhau. Điều này được lỷ giải do cơ chế cấp
phái bộ nhớ cho biến trong Python như sau:
Chẳng hạn, khi gán X = 123, máy tinh sẽ sử dụng một số ô nhớ (ở
một vị trí nào đó trong bộ nhớ RAM - Random Access Memory) để lưu
giá trị 123 và biến X trở thành con trỏ chi tới ô nhớ chứa giá trị 123.
123
Khi ta gán X = 321 , m áy tính s ẽ dùng m ột số ô nhớ khác đ ể
chứa giá trị 321, và lúc này X sẽ chi tới ô nhớ chứa giá trị 321, ô
nhớ chứa giá trị 123 lúc trước sẽ được giải phóng nếu không có
biến nào chi tới nó.
•
X
= 123
•
X
= 321
25
chương 2. Lập trình Python cd bản
Trong trường hợp có nhiều biển có cùng giá trị, thì các biến này
cùng chi tới một ô nhớ chứa giá trị đó.
•
•
X
X
= 123
123
= 123
y = 123
•
X = 321
y = 123
Ví dụ 3. Chương trình:
X
=
123
y = 123
p rin t(" D ia
c h i o nho X
tro t o i : ”, i d ( x ) )
p rin t(" D ia
ch i o nho y
tro t o i : " jid ( y ) )
p r in t ( ”Dia
ch i o nho X
tro t o i : ”, i d ( x ) )
p rin t(" D ia
c h i o nho y
tro t o i : M,i d ( y ) )
X = 321
Kết quả:
Dia ch i
o nho
tro t o i :
1457220608
Dia ch i
o nho y tro t o i :
1457220608
Dia ch i
o nho
tro t o i :
3267760
Dia c h i
o nho y t r o t o i :
1457220608
X
X
❖ Chú ý
Các ô nhớ được sử dụng để chứa giá trị cùa các biến, trong quá
trình thay đổi giá trị, nếu ô nhớ nào không có biến chi tới thì ô nhớ đó
sẽ được giải phóng để chứa các giá trị khác trong quá trình thực hiện
chương trình.
26
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
3. Một số quy tắc về đạt tên biến
Việc đặt tên biến được quy định bởi từng ngôn ngữ lập trình và
hệ điều hành tương ứng. Việc đặt tên biến trong Python được quy định
như sau:
- Biến có thể chứa các ki tự chữ cái và chữ số.
- Không chứa ki tự trống “sp a ce” và các ki tự đặc biệt khác như
+.
••
- Tên biến không thể bắt đầu bằng ki tự số.
- Không sử dụng các từ khóa, tên hàm đã được ngôn ngữ lập
trình sử dụng.
- Tên biến nên đặt ngắn gọn, gợi nhớ và d ễ nhớ.
Ví dụ 4
■k Tên đúng: X , y, x l, x2.
«ik Tên sai: lx, 2x, a b, de f.
4. Một sô' cách rút gọn dể gán giá trị cho biến
Python cho phép người lập trình viết ngắn gọn các biểu thức gán
giá trị, điều này đã tạo ra các câu lệnh rất đẹp và thanh lịch.
Cách gán thông thường
Cách gán rú t gọn
a=2
a=b=c=2
b=2
c=2
a= 1
a, b, c = 1 ,2 ,3
b=2
c=3
Tráo đổi giá trị a và b
x=a
a=b
b= X
a, b = b, a
Chương 2. Lập trình Python cơ bản
27
B. BÀI TẬP ÔN LUYỆN
Bài tập 1
Chương trình nào dưới đáy là chương trình đúng, chương trình
sai? Hãy giải thích những cho sai.
Chương trình 1:
a = b = c
p rin t(a )
p rin t(b )
p r in t(c )
Chưcmg trình 2:
a = 1
a = b = c
p rin t(a)
p rint(b)
p rin t(c )
Chương trình 3:
c = 1
a
Tiến Sĩ chuyên ngành LI luận
& Phương pháp dạy hpc Bộ
mồn toán. Cao hgc chuyên
ngành Khoa học máy tinh,
Cừ nhân Ngữ Văn Anh. Anh
là học sinh Khóa I chuyên tin
Khôi phô' thòng chuyên loán - tin, Đại học Sư
phạm Vinh, Nghệ An.
Anh hiện là giàng viên Trưòng Đại học Ngân
hàng TP. Hổ Chl Minh; tác giả cùa hon 40 Đấu
sắch vé toán, tin, vặt li và tiếng Anh. Anh có
hàng chục bài viết trẽn tạp chi Tin hpc & nhà
trường Ngoài ra vốn là người giàu cảm xúc.
anh cũng là tấc già cùa cuốn tha "Giọt gió treo
cành năng".
Môt số cuốn sách tin hoc gây được tiếng vang
trong cộng đống là: Khám phá trong giải toán
phố thông bàng các phuong phấp toán - tin;
Sang tao trong toán lặp trinh, Tích hợp toán,
tin vá vật I I . ...
ThS.
PHAN
XUÂN
VỌNG.
Thạc s ĩ chuyên ngành Khoa
hợc máy tinh, Cừ nhãn sư
phạm toán. Anh là giáo viên
trường chuyên Đại hoc Vinh,
có nhiẽu năm kinh nghiệm
chuyên dạy cho đội tuyển
tham dư kì thiH qc sinh giòi quôc gia mõn
tin
hQC Anh cũng lẳ hoe sinh Khóa I chuyên tin
Khối phò thóng chuyên toán - tin, Đại học Sư
pham Vinh. Mghè An
L a
N G U YẺN QUỐC ANH Cứ nhân
chuyên ngành Hè thống Điện.
1
Có nhiều nghiên cứu chuyèn
sâu vé Còng nghê thõng
tin
Đã xuất bán một số bài bâo
cùng n hư sach vé Toán - Tin và ứng dung Tin
hoc trong Toan lioc
TS. NGUYÊN NGỌC GIANG (Chủ biên)
ThS. PHAN XUÂN VỌNG - NGUYÊN QUỐC ANH
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
(Một ừotig những ngôn ngữ lập trình chính, phổ biến nhất
của AI, Machine Leaming, Data Mining, Deep Leaming
và môn Tin học trong chương trình Giáo dục phô'thông mói)
N H À XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI
MỤC LỤC
LỜI NÓI ĐẤU....................................................................................................5
Chương 1. MỞ ĐẨU................................................................................................. 7
Chủ đé 1. Giới thiệu vể lập trinh Python................................................... 7
Chủ để 2. Cài đặt Python và các phần mém liên quan...............................9
Chương 2. LẬP TRÌNH PYTHON c ơ BẢN.............................................................. 15
Chủ đề 3. Vào/ra dữ liệu từ thiết bị chuẩn............................................... 15
Chủ đé 4. Biến và gán giá trị cho biến....................................................23
Chủ đê 5. Kiểu dữ liệu số .......................................................................30
Chủ đề 6. Cấu trúc rẽ nhánh................................................................... 41
Chủ đé 7. Cấu trúc lặp......................................................................... 58
Chủ để 8. Kiểu dữ liệu chuỗi................................................................... 75
Chủ đé 9. Một số thao tác trên chuỗi...................................................... 92
Chủ đê 10. Kiéu dữ liệu danh sách - List..............................................112
Chù đề 11. Một số vấn đé nâng cao vê danh sách............................... 130
Chủ đé 12. Kiểu dữ liệu bộ - Tuple........................................................154
Chủ đê 13. Kiểu dữ liệu tập hợp - Set...................................................166
Chủ đé 14. Kiểu dữ liệu từ điển - Dict................................................... 181
Chủ đề 15. Kiểu dữ liệu tệp.................................................................. 194
CKiương 3. MỘT s ố CHỦ ĐÉ PYTHONNÂNG CAO............................................... 210
Chủ đé 16. Chương trinh con................................................................ 210
Chủ đê 17. Chương trình con đệ quy, đệ quy quay lui
và đệ quy có nhd............................................................... 229
Chủ đề 18. Kiểu dữ liệu lớp - Class..................................................... 251;'
4
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Chủ đê 19. Modunles và Packages..................................................... 266
Chủ đề 20. Modunle queue và cấu trúc dữ liệu hàng đợi, ngăn xếp,
hàng đợi ưu tiên..................................................................277
Chủ đê 21. Xử lý
ngoại lệ - Exceptions.............................................. 310
Chủ đẽ 22. Đố họa cùng với Tkinter.....................................................318
TÀI LIỆU THAM KHẢO ....................................................................................347
LỞI NÓI ĐẦU
Cuộc cách mạng công nghệ 4.0 đã và đang làm thay đổi mọi lĩnh
vực khoa học và đời sống. Các ngành nghề dựa vào thành quả cùa lĩnh
vực công nghệ cao như Công nghệ Nano, Công nghệ Sinh học và đặc
biệt là Công nghệ Thông tin ngày càng phát triển vượt bậc cả về lượng
lẫn về chất. Đe góp phần cho ngành Công nghệ thông tin có ảnh
hường mạnh mẽ như vậy, thì việc lựa chọn ngôn ngữ lập trình trong
các lĩnh vực mũi nhọn như Trí tuệ nhân tạo (AI), học máy (Machine
Leaming), khai phá dữ liệu (Data Mining), học sâu (Deep Leaming)
trờ nên vô cùng quan trọng và cần thiết. Một trong những ngôn ngữ
đáp ứng được hầu hết các tiêu chí của tất cả nhà lập trình khó tính nhất
đó chính là ngôn ngữ lập trình Python.
Ngôn ngữ lập trình Python có nhiều ưu điểm nổi trội như dễ nhớ,
dễ viết, khả năng xử lí số liệu lớn, phức tạp rất tốt, thư viện có nhiều
hàm, đáp ứng được nhiều kiểu dữ liệu mới của Machine Leaming, AI,
Data Mining, Deep Leaming. Ngày nay, máy tính có khả năng tự học
mà không cần phải lập trình một cách rõ ràng. Ngành Khoa học máy
tính hiện cỏ nhiều ứng dụng sâu rộng vào cuộc sống hằng ngày như
đánh cờ, nhận diện khuôn mặt, chẩn đoán y khoa, phát hiện thẻ tín
dụng giả, dự đoán kết quả trận đấu, nhận diện giọng nói, phân loại các
chuẩn DNA, tóm tắt văn bản, trả lời tự động,... Chính vì thế, ngôn
ngữ lập trình Python giờ đã trờ thành một yếu tố không thể thiếu khi
nhắc đến AI, Machine Leaming, Data Mining, Deep Leaming và
ngược lại.
Ngôn ngữ lập trinh Python vừa đáp ứng được yêu cầu của các bài
toán lập trình cổ điển trước đây và các bài toán lập trình mới. Tuy
nhiên, các tài liệu về lập trình Python ở nước ta còn thiếu. Đó là rào
cản lớn cho những bạn muốn sử dụng ngôn ngữ này trong lập trinh.
Ngoài ra, sắp tới ngôn ngữ lập trình Python sẽ được đưa vào giảng dạy
trong chương trình Giáo dục phổ thông môn Tin học nên việc biên
6
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
soạn tài liệu có chất lượng về Python cho các em học sinh là một việc
làm rất cấp thiết. Cuốn sách “Đường vào lập trình Pytìíon" là sản
phẩm “thai nghén” trong một thời gian dài vừa viết, vừa phàn biện sao
cho thành phẩm cuối cùng được ưng ý nhất. Cuốn sách có 22 chù đề
được viết theo lối viết sư phạm. Ngoài chương 1 là chương về kiến
thức mở đầu ra thì các chương còn lại có cấu trúc chung như sau:
A. Đặt vấn đề
B. Bài tập ôn luyện
c . Thuật toán và hướng dẫn giải
Nội dung cuốn sách bàn về những vấn đề cơ bàn cùa lập trinh
như cấu trúc lặp, kiểu dữ liệu chuỗi,... cũng như những vấn đề nâng
cao, hiện đại như quay lui, hàng đợi, ngăn xếp, đồ họa, kiểu dữ liệu từ
điển,... Chính vì thế, cuốn sách đáp ứng được mọi nhu cầu từ thắp đến
cao, từ đom giản đến phức tạp cùa tất cả các em học sinh Phổ thông
Trung học, sinh viên, học viên cao học ngành Khoa học máy tính, quý
thầy cô và nhà nghiên cứu muốn tìm hiểu về ngôn ngữ lập trình
Python. Những ai quan tâm đến lập trình Python đều tìm thấy nhiều
điều bồ ích từ cuốn sách này.
Mặc dù được biên soạn cẩn thận, tuy nhiên cuốn sách khó có thể
tránh khòi thiếu sót. Mọi ý kiến của quý độc giả về cuốn sách xin được
gửi về cho chúng tôi theo địa chi: Ỏng Nguyễn Ngọc Giang, Giàng viên
Trường Đại học Ngân hàng Thành phố Hồ Chí Minh, 36 Tôn Thất Đạm,
Phường Nguyễn Thái Bình, Quận 1, Thành phố Hồ Chí Minh. Điện
thoại: 0908576218; Email: nguyenngocgiang.net@gmail.com.
Chủng tôi trân quý mọi góp ý của quý bạn đọc và xin chân thành
cảm ơn!
Thay mặt nhóm tác giả
TS. Nguyễn Ngọc Giang
Chương 1. MỞ ĐẦU
CHỦ ĐỂ 1. GIỚI THIỆU VỂ LẬP TRÌNH PYTHON
1. Tại sao lại là lập trình Python?
Ngôn ngữ lập trình Python được Guido van Rossum, lập trình
viên nôi tiếng người Hà Lan viết, phiên bản đầu tiên được phát hành
vào năm 1991. Hiện nay, Python đã phát triển đến các phiên bản 3.X.X.
Python chạy được trên nhiều nền tảng khác nhau như Windows,
Mac os, Linux, Raspberry Pi,... Python được thiết kế với ưu điểm
vượt trội là dễ đọc, dễ học và dễ nhớ; cỏ cấu trúc lệnh đom giản nhưng
rất hiệu quả, phần lớn các cầu lệnh được viết tương tự như ngôn ngữ
tiếng Anh. Python còn cung cấp phong phú các thư viện, mô-đun cho
phép làm việc thuận lợi về trí tuệ nhân tạo (Artiíĩcial Intelligence AI), phân tích dữ liệu lớn (Big Data - BG), học máy (Machine
Leaming - ML), làm việc được hầu hết với các cơ sờ dữ liệu. Triết lý
căn bản khi thiết kế Python được nhóm thiết kế đưa ra:
“Đẹp đẽ tốt hơn xấu xí
Minh bạch tốt hơn che đậy
Đom giản tốt hơn phức tạp ...”
Chính vì có nhiều ưu điểm như trên, nên đã có nhiều kỹ sư phần
mềm lựa chọn Python cho công việc của mình. Nhiều công ty đã sử
dụng ngôn ngữ lập trinh này để phát triển phần mềm như Google,
Yahoo, CERN, NASA...
2. Sách này dành cho ai?
Mục tiêu của cuốn sách nhằm cung cấp một khóa học nhanh và
đầy đủ nhất có thể cho bạn đọc về lập trinh Python. Cuốn sách đề cập
8
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
từ những kiến thức cơ bản đến những vẩn đề nâng cao. Cung cấp cho
người học những vấn đề cốt lõi của Python, để từ đó có thể lập trình
xử lý những công việc riêng của mình.
Cuốn sách được thiết kế theo định hướng chương trình phổ thông
2018, do vậy rất phù hợp với các em học sinh cấp trung học cơ sờ,
trung học phổ thông; học sinh chuyên tin; sinh viên năm nhất các
trường cao đẳng, đại học chuyên ngành Công nghệ thông tin (CNTT).
Ngoài ra, sách cũng rất phù hợp với các bạn muốn tự học lập trình cho
mục đích riêng của mình.
3. Để học Python cần chuẩn bị nhữhg gì?
Để có thể tiến hành học, các bạn sẽ cần chuẩn bị:
+ Một máy vi tính có cài sẵn hệ điều hành (Linux, Mac
Windows đều được).
os hay
+ Một trình biên dịch Python. (Trong nội dung cuốn sách này tác
giả sử dụng phiên bản 3.7.2, 64 bit).
+ Một trình Text Editor (Geany, Visual Studio Code, Sublime
Text...).
Việc cài đặt các công cụ liên quan trên từng hệ điều hành sẽ được
hướng dẫn chi tiết cho bạn đọc ở phần kế tiếp của cuốn sách.
9
Chương 1. Mở đầu
CHỦ ĐỂ 2. CÀI ĐẶT PYTHON VÀ CÁC PHẨN MỂM LIÊN QUAN
I. Cài dăt Python
1. Cài đặt Python trẽn Windows
Bưóc 1. Truy cập vào trang: https://www.python.org
Bước 2. Click vào nút Downloads, rồi nhấn vào Windows để tải
fìle cài đặt Python.
Oownloads
(>'"
Bấm vào nút lệnh Python 3.7.4 để tải về, ta có tệp.
ặ python-3.7^
Nếu muốn lựa chọn phiên bản khác, chọn View the íiỉll list of
downloads.
Ngoài ra, ta có thể tải bộ cài đặt excuíable ỉnstaller phù hợp với
phiên bản Windows đang sử dụng (32/64 bit)
Bước 3. Cài đặt
- Nhấn đúp vào file vừa tải về.
- Tích vào ô: Add Python 3.7 to PATH
- Chọn Install Now
10
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
I ■ Instal launcher for ail users (reccxnmended)
■ Add Pythoo 3.7 to PATH
Bước 4. Chờ đợi quá trình cài đặt diễn ra, khoảng 30s.
Setup Progress
InstaSng:
Python 3.7.4 Devetopment Libranes (32-bit)
11
Chương 1. Mở đầu
Setup was successíul
spedai thanks to M art Hammond. wĩthout w bose years ai
freety shared Windows expertise. Python fòr Wĩndows woufd
stiĐ be Python for DOS.
New to Pyứxxi? Start **th the onếne tirtorial and
djọgj™eo.lat»ọnSee w hat's new in thẽs rdease.
Nhấn Close để hoàn thành quá trình cài đặt.
Bước 5. Kiểm tra lại.
Vào cửa số lệnh Run và gõ cmd.
Nhẩn Enter hoặc nhấn OK, một cửa sồ hiện ra, ta gõ python vào
dấu nhắc lệnh sau đó nhấn tiếp Enter:
12
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Kiểm tra
❖ Chú ý
- Trong một số trường hợp báo lỗi, f pythonJ
is
not
recognized as an in t e r n a l or e x te rn a l command, operable
program o r batch f i l e . Đây là lỗi chưa đăng kí biến đường dẫn
(path variable) cho python.exe. Lỗi này là do không chọn ô A d d
P y th o n 3.7 to PATH. Trong trư ờng hợ p này, đăn g kí lại biến
m ôi trư ờ ng (Environment Variables) hoặc cài lại và làm đầy đ ủ
n h ư hư ớ ng dẫn trên.
- Gõ lệnh exitộ hoặc Ctrl+D để thoát lệnh python3.
- Việc cài đặt Python trên các hệ điều hành Mac
được thực hiện tương tự.
os
và Linux
II. Cài dặt một trình biên tập
1. Khái niệm "Trình biên tập"
Trinh biên tập (Text Editor) là một phần mềm hỗ trợ soạn thảo,
chinh sửa, biên tập và lưu trữ chương trình. Nội dung dưới đây sẽ đề
cập tới một số trình biên tập dùng để biên tập, chinh sửa và hỗ trợ
chạy (thực thi) mã nguồn Python.
2. Một s ố trình biên tập thông dụng
Hiện nay có rất nhiều những trình biên tập khác nhau bao gồm cả
miễn phí và trả phí. Trong nội dung cuốn sách này, chúng ta sẽ đề cập
đến hai trình biên tập hỗ trợ cả 3 nền tảng Windows, Linux và cả Mac
o s , với rất nhiều tính năng thông dụng hiện nay đó là Sublime Text
và Visual Studio Code.
13
Chương 1. Mở đáu
3. Cài đặt Sublime Text
Bước I. Truy cập địa chì: https://www.sublimetext.eom/3
Chọn phiên bản phù hợp với hệ điều hành của bạn và tiến hành
cài đặt.
Bước 2. Tùy chinh lại Sublime Text để có thể biên dịch được mã
nguồn Python bằng cách: Tools -* Build System -» Python.
4. Cài đặt Visual studio Code
Bước 1. Truy cập địa chi: https://code.visualstudio.com/download
Chọn phiên bản phù hợp với hệ điều hành của bạn và tiến hành
cài đặt.
Bước 2. Tùy chinh lại Visual Studio Code để có thể biên dịch
được mã nguồn Python.
III.Chạy thử chương trình dầu tiên
Trong cuốn sách này, các chương trinh nguồn được viết trên trình
biên tập Sublime Text.
Mờ Sublime Text lên và gõ lại đoạn code sau, lưu lại dưới tên
“Chaoban.py”:
C hao ban
£ F in i s h e d i n
0 - ls J
Kết quả
14
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Sau khi lưu lại bấm “C trl 4- B” đối với máy sử dụng hệ điều hành
Windows hoặc Linux, và bấm “Comand + B” đối với máy sừ dụng hệ
điều hành Mac o s .
> Chạy chưtmg trình từ dòng lệnh
Chương trình Python có thể thực hiện từ dòng lệnh như sau:
- Mở cửa sổ dòng lệnh bằng cách chạy chương trinh cmd.exe
- Sau đỏ nhập lệnh python [đường dẫn]\Chaoban.py và bấm Enter.
B
> Viết chương trình từ Python Shell
Để soạn thảo và chạy chương trình Python ta cũng có thể sử dụng
môi trường
DLE (Python 3-732-bít)
❖ Chú ỷ
Một chương trình nguồn viết bằng Python có phần mở rộng là .py.
Khi thực hiện các chương trình này thì chương trình biên tập nhận diện
được đây là một chương trình Python. Sau đó sử dụng trình “thông dịch
Python" (Python Iníerpreter) để chạy chương trình.
Chương 2. LẬP TRÌNH PYTHON c ơ BẢN
CHÙ ĐỂ 3. VÀO/RA DỮ LIỆU TỪ THIẾT BỊ CHUẨN
A. KIẾN THỨC Cơ BẢN
Thiết bị chuẩn dùng để vào/ra dữ liệu trong máy tính là bàn phím
và màn hình. Trong bài này, ta sẽ đề cập tới các câu lệnh cho phép đưa
dữ liệu vào từ bàn phim và đưa kết quả ra màn hình.
1. Đưa kết quả ra màn hình
1.1. Câu lệnh
Câu lệnh: p r in t(< d a n h sách kết quả>)
Dùng để đưa các kết quả ra màn hình.
1.2. Một số ví dụ
Ví dụ 1. Chương trình:
p r i n t ("*•■)
p r i n t ("**")
p r i n t ( ,,***M)
p r i n t (•'****")
p rin t(" * * * * * " )
Kết quả:
*
**
***
****
*****
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 2. Chương trình:
p rin t("* \n * * \n * * * \n * * * * \n * * * * * M)
Kết quà:
*
**
***
****
*****
❖ Chú ỷ
Kí tự xuống dòng và về đầu dòng trong Python là '\n ';
Ví dụ 3. Chương trình:
X = "Chao mung ban den voi Python"
p rin t(x )
Kết quả:
Chao mung ban den vo i Python
Ví dụ 4. Chương trình:
print("Ngon ngu"/'Lap trin h ","P y th o n ")
Kết quả:
Ngon ngu Lap t r in h Python
❖ Nhận xét
Khi đưa nhiều kết quả trong câu lệnh p r i n t Q , ta sử dụng dấu
phẩy để phân cách giữa các kết quả.
2. Câu lệnh p r ỉn to với các tham số
A Tham số sep
Câu lệnh: p r in t (
** Đưa n kết quả ra màn hình. Gác kết quả sẽ được đua ra trên
một dòng và giữa các kết quả là một khoảng trắng (white space).
17
Chương 2. Lập trình Python cơ bản
Ví dụ 5. Chương trình:
p r in tC a V b V c " )
tír Kết quả:
a b c
Đây là sự mặc định của tham số sep, nhưng ta cỏ thể thay đổi
điều này bằng thiết lập tham số se p này theo câu lệnh:
pnint( ,< k ê ì quả n>, sep = [nội dung giữa các kêì quả])
Như vậy tham số sep mặc định đó là sep =
Ví dụ 6. Chươrig trình:
p r i n t C a V b V c " , sep =
p r in t ( " a " j " b " ," c " , sep =
p r in t C a " ," b " ," c " , sep = “ ■')
print("a","b","c", sep = V )
Kết quả:
abc
a --b --c
a b c
a ,b ,c
Giải thích:
Câu lệnh 1: sep =
kết quả.
Câu lệnh 2: sep =
tức là rỗng, không có khoảng cách giữa các
do vậy sẽ có —giữa các kết quả.
Câu lệnh 3: sep = “ ”, tức là kí tự trắng, nên giữa các kết quả có
kí tự trắng.
Câu lệnh 4: sep =
do vậy sẽ có dấu
giữa các kết quả.
Tham số end
Câu lệnh:
print(
Khi thực hiện xong sẽ tự động xuống dòng và về đầu dòng mới.
Muốn in nhiều kết quả trên cùng một dòng, ta có thể sử dụng tham số
end.
print(
18
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 7. Chương trình:
p r in t ( " a " ,e n d = " ")
p r in t( " b " ,e n d = "+")
p rin t(" c " ,e n d = H\n")
p r i n t ( ”Tu hoe")
p r i n t ( ”Python")
Kết quả:
a b+c
Tu hoc
Python
Như vậy, tham số end mặc định bằng end = ' \ r T , kí tự xuống
dòng và về đầu dòng mới.
3. Nhập dữ liệu từ bàn phím
Câu lệnh:
in p u t ( )
Dùng để nhập một dãy kí tự từ bàn phím.
M ộ t s ô 'v í dụ
i
Ví dụ 8. Nhập một dãy kí tự và in ra màn hình.
Chương trình:
print("M oi nhap mot day k i tu ")
X = in p u tQ
p rin t("D ay k i tu duoc nhap ” ,x )
Ket quả chạy từ dòng lệnh cmd.exe
c I \ U I ' S \ f l dr i i n i í; t r a t o 1' > p y t h o n c : \ p v t h o n \ i » l m p . p y
M oi
Iilu ip
im t .
iltiự
u i
11(14
ỉ .• | I t I' .1,1. p ụ t lion
D au
Ki
tu
lUioc
r I ] 1. 11J
tu
Um;
l
1.1' i n l i
p y t lion
Ta có cách viết khác của câu lệnh ỉ n p u t ( )
X = input("Moi nhap mot day k i tu ")
p rin t("D a y k i tu duoc nhap ”,x )
Chương 2. Lập trình Python cơ bản
19
Ví dụ 9. Nhập hai số tự nhiên a và b. Đưa ra tổng a + b.
Chương trình:
a = in t(in pu t("N hap so a: " ))
b = in t ( in p u t ( “Nhap so b: " ))
p rint("Tong a + b: ”,a+b)
❖ Chú ý
Câu lệnh in p u t ( ) trà về một chuỗi kí tự, vì vậy khi muốn kết
quà trà ve là các sổ nguyên ta cần ép kiểu như trên. Ví dụ i n t ( “ 123”)
sẽ chuyên chuỗi ki tự “123 " thành số 123.
Đ ể chạy hai ví dụ trên, ta cần thực hiện chương trình ở ch ế
độ dòng lệnh.
4. Chú thích
Khi viết chương trình, để làm rõ ý nghĩa thực hiện của một số câu
lệnh nào đó, ta có thể sử dụng chú thích. Khi thực hiện chương trình,
trình thông dịch sẽ “bỏ qua " các dòng chú thích này.
Cách viết chú thích:
a) Chú thích trên một dòng
# nội dung cần chủ thích
Ví dụ 10. Chương trình:
X = "Tu hoc Python"
# Dua bien X ra man hinh
p r in t ( x )
Kết quả:
Tu hoc Python
b) Chú thích trên nhiều dòng
Để viết chú thích trên nhiều dòng, ta có thể sử dụng nhiều lần chú
thích một dòng hoặc thực hiện như sau:
Cách 1. Bắt đầu bàng 3 nháy đôi “““ và kết thúc bằng 3 nháy đôi
20
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Nội dung cần chú thích
»»»»
Cách 2. Bắt đầu bằng 3 nháy đơn
và kết thúc bằng 3 nháy đom ” '.
Ui
Nội dung cần chú thích
m
Ví dụ 11. Chương trình:
II II II
Python duoc xem la mot ngon ngu lap t r in h phu
hop vo i cac du an lon ve t r i tue nhan tao .
Cac cau lenh cua Python trong sang va ra t de su
dung.
II II II
X = "Tu hoc Python"
# Dua bien X ra man hinh
p r in t( x )
*■ Kết quà:
Tu hoc Python
B. BÀI TẬP ÔN LUYỆN
Bài tập 1
Dùng lệnh p r in t ( ) để in ra màn hình các hình vẽ sau:
a) Hình chữ nhật
Ạ***********
************
************
************
21
Chương 2. Lập trình Python cơ bản
b) Hình cây thông
*
* **
*****
*******
*********
***********
*
*
*
Bài tập 2
Sử dụng hàm in p u t ( ) nhập từ bàn phím hai số tự nhiên a và b.
Đưa ra hiệu a — b.
Bài tập 3
Hãy phân tích kết quả khi chạy chương trình dưới đây, sau đó
chạy chương trình để đối chiếu kết quả.
a = 10
b = 20
c = 30
p rin t(a ,b ,C jS e p =
print(a+b+c)
c . THUẬT TOÁN VÀ HƯỚNG DAN giải
Bài tập 1
a) Hình chữ nhật.
p r in t( "************")
p r ỉn t("************”)
p r in t("************")
p r in t("*♦******♦***")
end = ■'=")
22
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
b) Hình cây thông.
print("
*
")
print("
***
")
p rin t ("
** * * *
")
p rin t("
*******
•')
p r i n t c ********* ■
')
p r in t("***********")
p r in tc
*
")
printc
*
")
p rin t("
*
")
Bài tập 2
Chương trình:
a = int(input("N hap so tu nhien a: ■'))
b = int(input("N hap so tu nhien b: " ))
c = a + b
prin t("H ieu a - b = ", c)
Bài tập 3
Ket quả khi chạy chương trình:
10+20+30=60
Chương 2. Lập trình Python cđ bản
23
CHỦ ĐỂ 4. BIẾN VÀ GÁN GIÁ TRỊ CHO BIÍN
A. KIẾN THỨC Cơ BẢN
1. Khái niệm về biến
Biến (variable) là một đối tượng mà giá trị của nó có th ể thay đối
được khi thực hiện chương trình. Mỗi biêh đêu được đặt tên và cần
một lượng ô nhớ máy tính tương ứng đ ể lưu giá trị của nó. Trong
Python, mỗi biêh là một con trỏ chỉ đến ô nhớ chứa giá trị đã được
gán cho biêh dó.
Khác với các ngôn ngữ lập trinh khác, Python không có lệnh khai
báo biến mà có lệnh gán trục tiếp giá trị cho biến theo cách:
Các ô nhớ trong máy tính được đánh địa chì (số thứ tự) bắt đầu từ 0.
Đe lấy địa chi ô nhớ lưu trữ giá trị cùa một biến, ta dùng hàm ỉ d
(Tên biến).
2. Một sô' ví dụ về sử dụng biến
Ví dụ 1. Chương trình:
# Gan gia t r i cho bien X
X = "Tu hoc Python"
p r in t ( x )
p rin t(" D ia c h i o nho: ", id ( x ) )
Kết quả:
Tu hoc Python
Dia c h i o nho:
7940120
❖ Chú ý
Cùng một chương trình như trên, mỗi lần thực hiện, địa chi ô nhớ
của biến X có thể khác nhau.
24
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
Ví dụ 2. Chương trinh:
X = "Tu hoc Python"
p rỉn t(" G ia t r i bien x : ” ,x )
p rin t(" D ia ch i 0 nho:
" ji d ( x ) )
X = "Da thay doi gia t r i "
p rin t(" G ia t r i bien x : M,x )
p r i n t ( ”Dia ch i o nho:
" ,id ( x ) )
Kết quả:
Gia
tri
bien x: Tu hoc Python
Dia
ch i o nho:
19933168
Gia
t r i bien x:
Da thay doi g ia t r i
Dia
ch i o nho:
20110560
❖ Nhận xét
Trong chương trình trên, ta nhận thấy rang, cùng một biến X
nhưng có hai địa chi khác nhau. Điều này được lỷ giải do cơ chế cấp
phái bộ nhớ cho biến trong Python như sau:
Chẳng hạn, khi gán X = 123, máy tinh sẽ sử dụng một số ô nhớ (ở
một vị trí nào đó trong bộ nhớ RAM - Random Access Memory) để lưu
giá trị 123 và biến X trở thành con trỏ chi tới ô nhớ chứa giá trị 123.
123
Khi ta gán X = 321 , m áy tính s ẽ dùng m ột số ô nhớ khác đ ể
chứa giá trị 321, và lúc này X sẽ chi tới ô nhớ chứa giá trị 321, ô
nhớ chứa giá trị 123 lúc trước sẽ được giải phóng nếu không có
biến nào chi tới nó.
•
X
= 123
•
X
= 321
25
chương 2. Lập trình Python cd bản
Trong trường hợp có nhiều biển có cùng giá trị, thì các biến này
cùng chi tới một ô nhớ chứa giá trị đó.
•
•
X
X
= 123
123
= 123
y = 123
•
X = 321
y = 123
Ví dụ 3. Chương trình:
X
=
123
y = 123
p rin t(" D ia
c h i o nho X
tro t o i : ”, i d ( x ) )
p rin t(" D ia
ch i o nho y
tro t o i : " jid ( y ) )
p r in t ( ”Dia
ch i o nho X
tro t o i : ”, i d ( x ) )
p rin t(" D ia
c h i o nho y
tro t o i : M,i d ( y ) )
X = 321
Kết quả:
Dia ch i
o nho
tro t o i :
1457220608
Dia ch i
o nho y tro t o i :
1457220608
Dia ch i
o nho
tro t o i :
3267760
Dia c h i
o nho y t r o t o i :
1457220608
X
X
❖ Chú ý
Các ô nhớ được sử dụng để chứa giá trị cùa các biến, trong quá
trình thay đổi giá trị, nếu ô nhớ nào không có biến chi tới thì ô nhớ đó
sẽ được giải phóng để chứa các giá trị khác trong quá trình thực hiện
chương trình.
26
ĐƯỜNG VÀO LẬP TRÌNH PYTHON
3. Một số quy tắc về đạt tên biến
Việc đặt tên biến được quy định bởi từng ngôn ngữ lập trình và
hệ điều hành tương ứng. Việc đặt tên biến trong Python được quy định
như sau:
- Biến có thể chứa các ki tự chữ cái và chữ số.
- Không chứa ki tự trống “sp a ce” và các ki tự đặc biệt khác như
+.
••
- Tên biến không thể bắt đầu bằng ki tự số.
- Không sử dụng các từ khóa, tên hàm đã được ngôn ngữ lập
trình sử dụng.
- Tên biến nên đặt ngắn gọn, gợi nhớ và d ễ nhớ.
Ví dụ 4
■k Tên đúng: X , y, x l, x2.
«ik Tên sai: lx, 2x, a b, de f.
4. Một sô' cách rút gọn dể gán giá trị cho biến
Python cho phép người lập trình viết ngắn gọn các biểu thức gán
giá trị, điều này đã tạo ra các câu lệnh rất đẹp và thanh lịch.
Cách gán thông thường
Cách gán rú t gọn
a=2
a=b=c=2
b=2
c=2
a= 1
a, b, c = 1 ,2 ,3
b=2
c=3
Tráo đổi giá trị a và b
x=a
a=b
b= X
a, b = b, a
Chương 2. Lập trình Python cơ bản
27
B. BÀI TẬP ÔN LUYỆN
Bài tập 1
Chương trình nào dưới đáy là chương trình đúng, chương trình
sai? Hãy giải thích những cho sai.
Chương trình 1:
a = b = c
p rin t(a )
p rin t(b )
p r in t(c )
Chưcmg trình 2:
a = 1
a = b = c
p rin t(a)
p rint(b)
p rin t(c )
Chương trình 3:
c = 1
a
 









Các ý kiến mới nhất