TÀI LIỆU LẬP TRÌNH PYTHON CƠ BẢN
vectorstock.com/10212105
Ths Nguyễn Thanh Tú eBook Collection
TÀI LIỆU LẬP TRÌNH PYTHON CƠ BẢN PHIÊN BẢN 3.8.5 (DÀNH CHO HS THPT) WORD VERSION | 2022 EDITION ORDER NOW / CHUYỂN GIAO QUA EMAIL TAILIEUCHUANTHAMKHAO@GMAIL.COM
Tài liệu chuẩn tham khảo Phát triển kênh bởi Ths Nguyễn Thanh Tú Đơn vị tài trợ / phát hành / chia sẻ học thuật : Nguyen Thanh Tu Group Hỗ trợ trực tuyến Fb www.facebook.com/DayKemQuyNhon Mobi/Zalo 0905779594
Lập trình Python cơ bản | Dương Thành Long
M ục lục Bài 1: Khái niệm lập trình và ngôn ngữ lập trình................................................................... 2 Bài 2: Tổng quan về Python......................................................................................................4 Bài 3: Nhập/xuất cơ bản, câu lệnh gán trong Python................................................................. 13 Bài 4: Khai báo biến trong python.............. ...................................................................« > !V Bài 5: Kiểu dữ liệu số trong Python............................................................................................. 19 Bài 6: Các toán tử cơ bản trong P ython...................................................................................... 29 Bài 7: Câu lệnh rẽ nhánh trong Python....................................................................................... 33 Bài 8: Vòng lặp trong Python....................................................................................................... 36 Bài 9: Hàm trong Python...............................................................................................................40 Bài 10: Chuỗi(xâu) trong Python.................................................................................................46 Bài 11: List(danh sách, mảng) trong Python...............................................................................50 Bài 12: Tuple(hằng) trong Python................................................................................................54 Bài 13: Dictionary(Từ điển, bản ghi) trong Python................................................................... 57 Bài 14: Đọc ghi file trong Python................................................................................................ 61 Bài 15: Các hàm xử lý chuỗi trong Python................................................................................. 65 Bài 16: Các hàm xử lý list trong Pytho ......................................................................................81
T r a n g 1 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 1: K h á i n iệ m lậ p t r ì n h v à n g ô n n g ữ lậ p tr ìn h
1. K hái niệm lập trìn h Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. 2. K hái niệm và ph ân loại ngôn ngữ lập trìn h Là ngôn ngữ dùng để diễn tả thuật toán sao cho máy tính hiểu và thực h ệ n được. Có 3 loại N n L t : - Ngôn ngữ máy : Các lệnh được mã hóa bằng các kí hiệu 0 - 1. Chương trình được viết trên ngôn ngữ máy có thể được nạp vào bộ nhớ và thực hiện ngay. - Hợp ngữ: sử dụng các từ viết tắt tiếng Anh để diễn tả câu lệnh. - Ngôn ngữ bậc cao : Các lệnh được mã hóa bằng một ngôn ngữ gần với ngôn ngữ Tiếng Anh. Chương trình viết trên ngôn ngữ bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được. Phải sử dụng một chương trình dịch để chuyển đổi. Lập trình bằng Ìgôn ngữ bậc cao dễ viết hơn vì các lệnh được mã hóa gần với ngôn ngữ tự nhiên. Lập trình trên ngôn ngữ máy rất khó, thường các chuyên gia lập trình mới lập trình được. 3. Chương trìn h dịch a. Biên dịch (compiler) : Bước 1 : Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của lệnh trong chương trình nguồn. Bước 2 : Dịch toàn bộ chương trình nguồn thành một chương trình trên ngôn ngữ máy. (Thuận tiện cho các chương trình ổn định và cần thực hiện nhiều lần). b. Thông dịch (interpreter): Bước 1 : ' Kiểm tra tính đúng đắn của lệnh tiếp theo trong chương trình nguồn. Bướ c2 : Chuyển lệnh đó thành ngôn ngữ máy.
o
ớc 3 : Thực hiện các câu lệnh vừa được chuyển đổi . hù hợp với môt trường đối thoại giữa người và máy). L ưu ý : một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn.
T r a n g 2 | 88
Lập trình Python cơ bản | Dương Thành Long
4. Các thành ph ần của ngôn ngữ lập trìn h Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản: bảng chữ cái, cú pháp và ngữ nghĩa. a. Bảng ch ữ cái: Là tập các kí hiệu dùng để viết chương trình. - Trong ngôn ngữ Python bảng chữ cái gồm: Các chữ cái trong bảng chữ cái tiếng Anh, các chữ số 0 -> 9 và một số kí tự đặc biệt (SGK) b. Cú pháp: là bộ qui tắc dùng để viết chương trình. cho ta biết cách viết một chư ơng trình hợp lệ. c . N g ữ nghĩa: xácđịnh ý nghĩa thao tác cần phải thực hiên , ứrg với tổ hợp kí tự dựa vào ngữ cảnh của nó - Cú pháp cho biết cách viết một chươngtrình hợp lệ , còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình. - Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập chương trình biết , chỉ có các chương trình không còn lỗi cú pháp mới có thể được dịch sang ngôn ngữ máy. - Lỗi ngữ nghĩa chỉ được phát hiện khi thực hiện chương trình trên dữ liệu cụ thể .
T r a n g 3 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 2 : T ổ n g q u a n về P y th o n
1. Python là gì? - Python là một ngôn ngữ lập trình kịch bản (scripting language) do Guido van Rossum tạo ra năm 1990. Đến nay thì cộng đồng người sử dụng ngôn ngữ này lất đông, nếu so sánh từ bảng xếp hạng các ngôn ngữ năm 2019 thì Python đứng thứ 1 trong top 10 ngôn ngữ phổ biến nhất. S
J Worldwide Feb 2019 compared to a year ago: Rank
Change
Language
Share 26.42 %
'H’en; +5:
Và Pytho n luôn được biết đến với các đặc điểm sau đây: Cú pháp rất tường minh, dễ đọc.
o
C ; c khả năng tự xét mạnh mẽ. Hướng đối tượng trực giác. Cách thể hiện tự nhiên mã thủ tục. Hoàn toàn mô-đun hóa, hỗ trợ các gói theo cấp bậc. Xử lý lỗi dựa theo ngoại lệ. T r a n g 4 | 88
Lập trình Python cơ bản | Dương Thành Long
Kiểu dữ liệu động ở mức rất cao. Các thư viện chuẩn và các mô-đun ngoài bao quát hầu như mọi việc. Phần mở rộng và mô-đun dễ dàng viết trong C, C++. Có thể nhúng trong ứng dụng như một giao diện kịch bản (scripting interface). Python mạnh mẽ và thực hiện rất nhanh. 2. Cài đặt Python. Python hỗ trợ hầu hết trên các hệ điều hành hiện nay, và cách cài đặt nó cũng rất đơn giản. Tuy nhiên ở bài này sẽ chỉ hướng dẫn cài đặt python trên môi trường window, các môi trường khác tương tự. Đầu tiên chúng ta cần download bộ cài python từ trang chủ của nó (download). Ở đây chúng ta chọn phiên bản mới nhất là phiên bản 3.8.5.
p
l J
i t h n n 1 I U I 1
About
w m m 1
Downloads
Documentation
Community
8
9
Q
GO
S ea ® k
Success Stories
News
Events
Download the latest version for Windows Download Python 3.8.5
Lo o kin g fo r Python w ith a differe nt OS? Python fo r W indows, Linux/UN IX, Mac OS X, O ther W ant to help te st develo p m ent versio n s o f Python? Prereleases, D ocker images Lo o kin g fo r Python 2.7? See below fo r sp ecific releases
Tiếp đó chúng ta chạy Ille vừa tải về và cài đặt theo các bước như sau: X
Open File - Security W arninig N Do you w an t
B fiille? D:\Tai Iieu\PythonVpython-3.S.5.exe blisher:
Python S o ftw a re Foundation
Type:
Application
From:
D:\Taii lli;eu\Pyth onVpyth on-3.8.5.exe Run
Cancel
1^1 Always ask before opening this file
¿tn)
Wh iIe f i Ies from th e Intern et can b e u sef u I, th is f i Ie typ e c a n p otenti a Ily harm your computer. Only run software from publishers you trust. I'Yhat's the risk?
T r a n g 5 | 88
Lập trình Python cơ bản | Dương Thành Long
Tích chọn Run S ’ Python 3.8.5 (32-bit) Setup
Select Install Now to install Python with default settings, or choose Customize to enable or disable features.
Includes IDLE, pip and documentation Creates shortcuts and file associations
—> Customize installation Choose location and features
python for
windows
0 Install launcher for all users (recommended) □ Add Python 3.8 to PATH
Chọn Install Now ç ÿ Python 3.8.5 (32-bit) Setup
Setup ProgrI
Cancel
g i qua trïnh cài dât
T r a n g 6 | 88
Lập trình Python cơ bản I Dương Thành Long
&
ỉ° I
Python 3.6.1 (32-bit) Setup
Im ẻaU
Setup was successful Special thanks to Mark Hammond, without whose years of freely shared Windows expertise. Python for Windows would still be Python for DOS.
i»
New to Python? Start with the online tutorial and documentation. See what's new in this release.
python for J ______
Màn hình báo thành công. s * Python Ỉ.S.5 [32-bit] Setup
^
<5^
-
X
essful Special thanks to Mark Hammond, without whose years oí freely’S irre d Windows expertise. Python for Windows would hon for DOS. o Python? Start with the online tutorial and ccumentaticin. See what's new in this release.
♦ Disable path length limit Changes your machine configuration to allow programs, including Python, to bypass the 260 character "MAX_PA7H" limitation.
windows
Close
Tiếp tục cài phần mềm ID E cho Python Link phần mềm PyCharm: https://www.jetbrains. com/pycharm/
T r a n g 7 I aa
Lập trình Python cơ bản | Dương Thành Long PyCharm
What's New
Features
Learning Center
Buy
a PyCharm The Python IDE for Professional Developers
Bấm chọn Download
Py Charm
PC Version: 2020.2.2 Build: 202.7319.64 17 September 2020
System requirements Installation Instructions o t h p r vpriinnc
Chọn phiên bản Community Chạy các bu ớc cài đặt như phần mềm Python phía trên
o T r a n g 8 | 88
Lập trình Python cơ bản | Dương Thành Long [ÿ|
File
Edit
View Navigate
Python Project
Code
Refactor
£
v
k
Help
Python Project
— [ 4 * test TJ
•G H Project ▼
^' [
Run Tools VCS Window
& testp y ©
t"
0
►
0 S
1+
X ■
Q,
—
Python Project D:'.Python Project
> M venv i
:
0 * main,py ¿^test.py > lllll External Libraries Scratches and Consoles
Search Everywhere Double Shift Go to File Ctrl+Shift+N Recent Files Ctrl+E Navigation Bar Alt+Flome Drop files here to open
PyCharm 2020.2.2 available Update...
© 6: Problems
:= ĨODO
a Terminal
>ỉ* Python Console
Màn hình làm việc chính phần mềm PyCharm 3. Chạy chương trìn h đầu tiên. - Sau khi đã cài đặt thành công pythc ython. Tại thư m mục mặc định Bấm chuột phải chọn New\Python File [^1 File
Edit
View
Navigate
tj
H I Project ▼
£
v
Refactor
©
k Python Project
hi
Cod;e
Run Tools
VCS Window
M venv
Python Project
1
i-
■>
►i
New
>
Cut
> 1
Copy
Ctrl+X
Find Usages
> lllll Exter ^ Scra*
^
File New Scratch File
^ l i Directory
1 Q Paste ft"
-
Python Project
Q rl+y
C i Python Package
Alt+F7
f t Python File
Find in Path,.,
Cti!*Shrft*F
Rep|l c e ¡n path,.,
CIrh-ShiH+R
™ *
L Fii=
EdhoiConfi, File
|fil Resource Bundle
Inspect Code... Refactor
;arch Everywhere Double Shift
►
Go to File Ctrl+Shift+N
►
Recent Files Ctrl+E
Clean Python Com piled Files Add to Favorites Reformat Code
Ctrl-»-Ait-t- L
Optimize Imports
Navigation Bar Alt+Home
Ctrl+Ah+O
Delete,.,
Delete
Drop files here to open
Show in Explorer Directory Path
Ctrl+Alt+F12
H Open in Terminal ►
Ĩ
Local History
1
G Reload from Disk 4
Compare With.,,
Ctrl+D
Mark Directory as
o
Remove BOM O
1
Create Gist.,, PyCharm 2 0 2 0 2 2 available Update...
■= TODO
© 6: Problems
0
Terminal
Python Console
4 Event Log
|D Creates a Python file from the specified template
Python 3,3 (Python Project) A
Ë
g
do) ENG
&46CH
Sau đó đặt tên là hello.py. T r a n g 9 | 88
—
Lập trình Python cơ bản | Dương Thành Long 1^1
File
Edit
View
P ython P roject
Navigate
■c
H
Project T
£
v
t o P ython Project
^
v
C ode
Refactor
Run
Tools
VCS W indow
Help
Python Project
l i venv ©
-r
<*
—
t o v en v library root
> t o Scripts ¡3 pyvenv.cfg & m ain.p y r ỉ te stp y > Mill External Libraries
Search Everywhere Double Shift
% Scratches and Consoles
Python file r ị Python unit test Í Ỉ Python stub
PyC harm 2 0 2 0 .2 .2 available Update...
9 6: Problems
:= TODO Ũ
a Terminal
Python Console
4ỈI Event Log
PyCharm 2020,2,2 available / / Update,., [4 m inutes ago)
Python 3.8 (Python Project)
Và viêt doan code sau vào: p r i n t ( ’H e l l o w o r l d ! ' ) 1^1
Fife
Edit
View
P ython P roject
Navigate
v en v
C ode
Refactor
IB] Project w v
Run
Tools
©
-7-
O
—
W indow
Help
hell: j p y 1
t o P ython P roject D :\Python Project v
VCS
Python Project - D:\l
p roject\venv\hell o. py
hello.py
p r in tc
rd')|
t o v en v library root t o Include > t o Lib > t o Scripts & hello.py ¡3 pyvenv.cfg S m ain.p y r" test.py
v
Mill External Libraries v
*8 * < Python 3.8 (Python Project) > D:\Pythcn Project! > lllll Binary Skeletons > t o DLLs > lllll Extended Definitions > t o Lib > t o P ython38-32
rary re
> t o srte-packages v
t o v en v lib ry root t o Include
*"D:\Python Project\venv\Scripts\python.exe" ™D:/Python Project/venv/hello.py" Hello Word Process finished with exit code i
Il 11 *
PyCharm 2 0 2 0 .2 .2 available Update...
► 4: Run Ũ
:= TQDO
0
6: Problems
El Terminal
1 1 Event Log
PyCharm 2020.2.2 available u Update.., [8 m inutes ago]
1:20
&
CRLF
l/TF-8
4 sp aces
Python 3.8 (Python Project) 3:51 CH
to
ig
44) ENG
22/09/1020
- Bây giờ để có thể chạy được đoạn code trên chúng ta nh ấn chuột phải vào vị trí tên file hello.py và chọn Run. T r a n g 10 | 88
_
%
Lập trình Python cơ bản I Dương Thành Long [^1
Fife
Edit
View
P ython P roject
Navigate
v en v
tj
[S| Project ▼
£
v
Code
Refactor
Run
Tools
VCS W indow
Help
X
Python Project - ữ:\Python P roject\venv\hello.py
hello.py
test -w Ị ►
Q
$
t o P ython Project
r
v
i B v e n v library root C lose All C opy Path...
> t o Lib
Split Vertically
> t o Scripts
■g- Split Horizontally
hello.py pyvenv.cfg
Pin Tab
f t m ain.py
Configure Editor Tabs...
r" tesfcpy
Select N ext Tab
lllll External Libraries v
Alt+Right
Seject Previous Tab
•S* < Python 3.8 (Python Project) > D:\Pythor
Alt+Left
Reopen Closed Tab
> lllll Binary Skeletons Add to Favorites
> t o DLLs
Add Ajl To Favorites
> lllll Extended Definitions
Renar 5 File.
> t o Lib
Run 'hello'
> t o P ython38-32 library root > t o site-packages
9
V t o v e iw library root
Ạ
t o Include
File Path
> t o Scripts
l3
CtrS+Alt+F12
s
Open in Termina I
o
Create Gist.,.
f t heilo.p y
1
Create hello ... Show in Explorer
> t o Lib
ầ
Ctrl+Shift+F10
Debug 'hello'
Local History
pyvenv.cfg
> lllll Tvpeshed Stubs Scratches and Consoles
PyCharm 2 0 2 0 .2 .2 available Update...
O 6: Problems
iE TODO D
a Terminal
'S* Python Console
^ Event Log
PyCharm 2 0 2 0 2 .2 available / / Update,., (5 m inutes ago]
ss
1:20
<3
' 1 fl i!l
Hi
CRLF
l/TF-8
&
4 sp aces
Python 3.8 (Python Project) 8:49 CH
to
ig
44) ENG
%
_
22/0 9/2020
- Kết quả thu được(vùng màu đỏ): ẼỊ
File
Edit
View
P ython P roject T5
ỊSỊ Project
ễ
v
Navigate
venv
C ode
t o ven v
Run
Tools
VCS W indow
Help
X
Python Project - D ï\ Python ProjectW env\hello.py
Q
* hello ▼ I ► ©
t o P ython P roject c v
Refactor
hello.py ■=■
o
—
& hello.py
p r in t ( " Hello Word"5|
I
a
t o Include > t o Lib > t o Scripts & hello.py ẩ pyvenv.cfg É& main.p y f t test.py V lllll External Libraries v
< Python 3.8 (Python Project} > D:\Python Project1 > lllll Binary Skeletons > t o DLLs
lllll Extended Definitions
>
> t o Lib > t o P ython38-32 library root > t o srte-packages
t o Include Run:
e* hello
^
"D:\Python Project\venv\Scripts\python.exe" "D:/Python Project/venv/hello.py" Hello Word
5!
735
Process finished with exit code @
PyCharm 2 0 2 0 .2 .2 available Update...
.
I 4: Run ►
:= TODO
0
6: Problems
H Terminal
f t Event Log
PyCharm 2020,2.2a v a ila b le // Update,., [8 m inutes ago)
I"
Hi
^
ä
ffl
1:20
m
CRLF
l/TF-8
4 sp aces
Python 3.8 (Python Project) 8:51 CH
to
ig
44) ENG
T r a n g 11 I as
2 2/09/2020
_
%
Lập trình Python cơ bản | Dương Thành Long
s
ỷ
Ờ
&
ỏ
o T r a n g 12 | 88
'
Lập trình Python cơ bản | Dương Thành Long
B à i 3: N h ậ p /x u ấ t c ơ b ả n , c â u lệ n h g á n tr o n g P y th o n
1. X uất kết quả ra m àn hình trong Python. Hàm print trong Python có tác dụng hiển thị dữ diệu ra màn hình khi chương ti^nh thực thi. Sử dụng với cú pháp như sau: print(content) T rong đó: c o n t e n t là nội dung hay biến muốn in ra màn hình, nếu muốn hiển thị nhiều nội dung khác nhau trên cùng một lần print thì chúng ta chỉ cần n^àn các giữa các nội dung bằng dấu , . VÍ DỤ: Hiển thị ra màn hình dòng chữ "Elearning.c3vietduc.daklak.edu.vn". # f ile lessonl.py p r in t( " E le a r n in g .c 3 v ie t d u c . daklak.edu Kết quả:
........ ..
Elearning. c3vietduc. daklak. edu. vn VÍ DỤ: Hiển thị 2 khối nội dung trên 1 lần print. print("Elearning.c3vietduc.daklak.edu.vn", ThanhLong" ) _____________________________________________________________________
4
"
Created
by
.
2. Thay đối ngắt dòng print. Mặc định thì mỗi lần chúng ta print dữ liệu thì nó sẽ tự ngắt dòng cho dòng tiếp theo. VÍ DỤ: P r i n t ( fE learnìng.c3vietduc.daklak.edu.vn') P r i n t ( ' A u t h o i ■ Thanh Lo n g ' ) Khi chạy đoạn code trên thì chúng ta sẽ thu được kết quả: Elearni c3vietduc. daklak. edu. vn Elearning. Auth or: Tin hoc
o
Vậy ở đây, khi chúng ta không muốn nó tự động ngắt dòng mỗi khi kết thúc print ___thì nữa thìmọi mọingười người sử sửdụng dụng từ từkhóa khóa end end thêm thêmvào vàoparam param cuối cuối cùng cùng của củahàm hàmprint printvới với cú pháp như sau: print(content,
end = " c h a r s e t " )
Trong đó là charset là ký tự mà chúng ta muốn thực hiện khi kết thúc hàm print. T r a n g 13 | 88
Lập trình Python cơ bản | Dương Thành Long
print("Elearning.c3vietduc.daklak.edu.vn",
end = " - ")
print("Hoc lap t r i n h online") Kết quả: Eleammg.c3vietduc.daklaLedu.vn - Hoc lap trinh online 3. Input. Trong Python có cung cấp cho chúng ta hàm input để nhận dữ liệu từ người dùng nhập vào trong commandline. Sử dụng với cú pháp như sau: input(something) T rong đó: something là nội dung mà chúng ta muốn hiển thị trước khi người dùng nhập dữ liệu. Và giá trị mà hàm này trả về chính là giá trị mà n° ười dùng nhập vào. VÍ DỤ: Nhập tuổi người dùng và in ra tuổi mà người dùn g nhí p vào. p r i n t ( " H e l l o guy!") age = i n p u t ( " H o w o l d a r e you? ") print("age:
" + age )
Kết quả: PS E:Stuts\pyt}>on> p y t h o n
Hsllo r|iiy!
-Messonỉ.py
H o w u.hS a r e y o u ? 22 age: 22 PS
E :\ t u t 5 \ p iit } s o n >
4. C âu lệnh gán(Toán tử gán). Câu lệnh gán(toán tử gán) là toán tử dùng đế gán giá trị của một đối tượng cho một đối tượng khác. Và trong Python thì nó cũng được thể hiện giống như các ngôn ngữ khác. Và dưới đây là 8 toán tử nằm trong dạng này mà Python hỗ trợ. Toán T ử
Chú Thích
Ví Dụ
=
Toán tử này dùng để gán giá trị của một đối tượng cho một giá trị
c = a (lúc này c sẽ có giá trị = 5)
+=
TA. £ • u a a. . _ Toán tử này cộng rồi gan giá trị cho đối tượng
c += a (tương đương v )° °
o
T r a n g 14 | 88
Lập trình Python cơ bản | Dương Thành Long
T , ,, „V . , À. £ u _ Toán tử này trừ rồi gan giá trị cho đối tượng
c -= a (tương đương ,.=v~
*
T , ,, „V . , À. £ , AA. . _ Toán tử nàyJ trừ rồi gan b giá b trị ■cho đối tượng V t,
c *= a (tương đương ~ với c = c ** a)c
/=
u- A. £ u _ Toán tử này chia rồi gan giá trị cho đối tượng
c /= a (tương đ rơng = v / a)
%
Toán tử này chia hêt rồi gắn giá trị cho đối tượng
c % = a (tương đương với c = c % a)
Toán tử này lũy thừa rồi gắn giá trị cho đối tượng
c **= a (tương đương với c = c ** a)
Toán tử này chia làm tròn rồi gắn đối tượng
c //= a (tương đương với c = c // a)
1 1 , 1 ' I I >=c1 '
ị cho
T r a n g 15 | 88
~) °
Lập trình Python cơ bản | Dương Thành Long
B à i 4: K h a i b á o b iế n tr o n g p y th o n
1. K hai báo biến trong Python. Để khai báo biến trong Python chúng ta sử dụng cú pháp: tenBien = g ia T ri Trong đó: t e n B i e n là tên của biến mà người lập trình muốn đặt. Tên biến này không được bắt đầu bằng số hay các ký tự đặc biệt, mà chỉ được bắt đầu bằng chữ cái ho hoặc ký tự gạch dưới (_) và nó có phân biệt hoa thường. g ia T r i là giá trị của biến muốn gán. VÍ DỤ: Khai báo một biến name trong Python. <
?
name = "Thành Long” Ngoài ra, người lập trình cũng có thể khai bá J nhiều biến bằng 1 giá trị trên 1 lần khai báo. VÍ DỤ: a = b = c = 1996 Hay là khai báo nhiều biến với các- giá trị tương ứng của nó trên 1 dòng. VÍ DỤ: name, a g e , male = "Thành Long", 32 , T r u e 2. Các kiểu dữ liệu cơ b ản trong Python. Python cũng gi ống như một số các ngôn ngữ bậc cao khác, khi ta khai báo biến thì kiểu dữ liệu của nó sẽ tự động được p h át hiện và định nghĩa. Vì vậy nên chúng ta cũng không phải quá vất vả khi khai báo 1 biến. Ví dụ: Cá c kiểu dữ liệu cơ bản trong python. name = "Thành Long" # s t r i n g ( X â u ) : ơe = 32 # i n t e g e r ( S ố nguyên)
o
point = 8.9 # f lo a t( S ố thực) option = [ 1 ,2 ,3 ,4 ,5 ] #lists(M ảng) t u p l e = ( ’Thành Long’ , 32 , T r u e ) #Tuple(Mảng hằng số)
T r a n g 16 | 88
Lập trình Python cơ bản | Dương Thành Long
d i c t i o n a r y = {"name": #Dictionary(Từ điển)
"Thanh Long” ,
"age":
32,
"male":
True}
3. Kiểm tra kiểu d ữ liệu. Trong python, để kiểm tra kiểu dữ liệu của một biến thì chúng ta có thể sử dụng hàm type với cú pháp như sau: type(data) Trong đó data là biến mà chúng ta cần kiểm tra. Ví dụ: name = " Tin học" type(name) # s t r i n g
o
age = 22 type(age) #in t point = 8.9 type(point) #float option = [ 1 ,2 ,3 ,4 ,5 ] type(option) # l i s t t u p l e t = ( ’Tin h ọ c ’ , 22 t y p e ( t u p l e t ) #Tuple d i c t i o n a r y = {"name":
"Tin h o c " ,
"age":
22,
" m a l e " : True}
type(dictionary) # dict 4. Ép kiểu dữ liệu trong Python. Trong một trường hợp nào đó mà người lập trình muốn chuyển đổi kiểu dữ liệu của một biến, thì Python hỗ trợ qua các hàm cơ bản sau: f l o a t ( d a t a ) chuyển đổi sang kiểu số thực. i n t ( d a t a , b a s e ) chuyển đổi sang kiểu số, trong đó base là kiểu hệ số mà các bạn muốn chuyển đổi sang (tham số này có thể bỏ trống). s t r ( d a t a ) chuyển đổi sang dạng chuỗi. c o m p l e x ( d a t a ) chuyển đổi sang kiểu phức hợp. t u p l e ( d a t a ) chuyển đổi sang kiểu Tuple. d i c t ( d a t a ) chuyển đổi sang kiểu Dictionary. T r a n g 17 | 88
Lập trình Python cơ bản | Dương Thành Long
h e x ( d a t a ) chuyển đổi sang hệ 16. o c t ( d a t a ) chuyển đổi sang hệ 8. c h r ( d a t a ) chuyển đổi sang dạng ký tự.
Ví dụ: age = 22;
C >^
# ép s a n g f l o a t floatAge = f lo a t(a g e ) print(type(floatA ge)) &
#ép s a n g i n t e g e r . intAge = i n t ( a g e ) print(type(intA ge))
#ép s a n g c h u ỗ i . strAge = s t r ( a g e ) print(type(strA ge))
T r a n g 18 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 5: K iể u d ữ liệ u số tr o n g P y th o n
1. Kiểu dữ liệu số (num ber) trong Python. Một biến được khai báo là kiểu dữ liệu số trong Python thì xét về mặt lưu trữ bộ nhớ thì nó sẽ không thay đổi được giá trị, mà khi chúng ta gán giá trị mới cho biến đó *hi thực chất nó sẽ tạo ra các ô nhớ mới khác để lưu trữ giá trị mới đó. Trong Python hỗ trợ chúng ta 3 kiểu dữ liệu dạng số như sau: int kiểu số nguyên kiểu này có kích thước không giới hạn (pythor 2 thì bị hạn chế). flo a t kiểu số thực. Kiểu này ngoài kiểu viết bình thường ra thì nó cũng có thể được hiển thị dưới dạng số mũ E (VÍ DỤ: 2.5e2 = 250). complex kiểu số phức đây là kiểu dữ liệu rất ít khi được sử dụng tới, nên không giải thích thêm ở đây. Nếu muốn giải phóng một vùng nhớ cho một biến trong Python thì có thể sử dụng lệnh del với cú pháp sau: d e l avariableName / / h o ặ c xóa n h i ề u b i ế n del avariableNamel, a v a riab le N a m e2 ,...,
avariableName3
T rong đó: avariableName, a'.'ariub'leNameJ,... là các biến mà bạn muốn giải phóng. VÍ DỤ: age = 22 L^), # 2? . p r' i n t ( a g eỉe
C
T
d e l ag print #
ime name ’a g e ’ i s n o t d e f i n e d
2.. C Các ác toán tử. Ở đây ví dụ biến a = 5 và b = 10: Toán T ử
Ví Dụ
Chú Thích
+
a + b // 15
Phép cộng. T r a n g 19 | 88
Lập trình Python cơ bản | Dương Thành Long
-
a - b // -5
Phép trừ.
*
a * b // 50
Phép nhân.
/
a / b // 0.5
Phép chia.
%
a % b // 5
Phép chia lấy dư.
■V
3. X ử lý số học với m odule m ath trong Python 3.1. abs(). Hàm này có tác dụng trả về giá trị tuyệt đối của một số. L ưu ý: Hàm này không nằm trong module math, nên các bạn k lông cần phải import modules math. Cú pháp: abs(number) T rong đó: number là số mà các bạn muốn chuyển đổi. VÍ DỤ: number = -5 print(abs(number)) # Kết quả:
5
“ 1 '9 _ number = - 1 9 .
<T
p r i n t ( a b s ( number)) # Kết q 3.2. fabs(). Hàm này có tác dụng trả về giá trị tuyệt đối của một số. Nhưng nó sẽ có khác với hàm abs() ở trên là hàm này sẽ chỉ chấp nhận chuyển đổi được kiểu số nguyên (integer) và số thực (float) trong khi hàm abs() chuyển đổi được cả complex number. Cú pháp: math.fabs(number) T rong đó: number là số mà các bạn muốn chuyển đổi. 3.3. ceil(). T r a n g 20 | 88
Lập trình Python cơ bản | Dương Thành Long
Hàm này có tác dụng chuyển đổi một số về dạng số nguyên của nó và số nguyên đó phải lớn hơn hoặc bằng số ban đầu. Nói một cách đơn giản thì hàm này có tác dụng làm tròn lên 1 số. Cú pháp: math.ceil(number) T rong đó: number là số mà các bạn muốn chuyển đổi. VÍ DỤ: i m p o r t math
number = 5 . 2 print(m ath. ceil(num ber)) # Kết quả: 6
number = 1 9 . 6 print(m ath. ceil(num ber)) # Kết quả: 20
number = - 1 9 . 6 print(m ath. ceil(num ber)) # Kết quả:
-19
VÍ i m pDỤ: o r t math .
.
A number = 5 print(math.exp(num ber)) #
Kết quả: 1 4 8 .4 1 3 1 5 9 1 0 2 5 7 6 6
3.5. floor(). T r a n g 21 | 88
Lập trình Python cơ bản | Dương Thành Long
Hàm này có tác dụng làm tròn một số về dạng số nguyên nhỏ hơn hoặc bằng số ban đầu. Nói cách khác thì là làm tròn xuống một số. VÍ DỤ: i m p o r t math
number = 5 . 3 print(m ath.floor(num ber)) # Kết quả:
5
number = 1 9 . 6 print(m ath.floor(num ber)) # Kết quả: 19
number = - 1 9 . 6 print(m ath.floor(num ber)) # Kết quả:
-20
3.6. log(). Hàm này sẽ trả về kết quả 1ogaiithm x, với x là số cần chuyển và x > 0. VÍ DỤ: i m p o r t math
number p r i n t 'i r a t h . log(number)) # K?t quả: 1 .6 6 7 7 0 6 8 2 0 5 5 8 0 7 6
lumb e r = 1 9 . 6 p rin t(m a th . log(number)) #
Kết quả: 2 .9 7 5 5 2 9 5 6 6 2 3 6 4 7 2
3.7. log10(). T r a n g 22 | 88
Lập trình Python cơ bản | Dương Thành Long
Hàm này tương tự như hàm log(), nhưng là dạng logarithm cơ số 10. VÍ DỤ: i m p o r t math
number = 5 . 3 p r i n t ( m a t h . log10(number)) # Kết quả: 0 .7 2 4 2 7 5 8 6 9 6 0 0 7 8 9
number = 1 9 . 6 p r i n t ( m a t h . log10(number)) # Kết quả: 1 .2 9 2 2 5 6 0 7 1 3 5 6 4 7 6 1 3.8. max(). Hàm này có tác dụng trả về số lớn nhất trong L ưu ý: Hàm này không nằm trong modul modules math.
được truyền vào. èn các bạn không cần phải import
VÍ DỤ: x , y = 5, 9 print(max(x, y)) # Kết quả: 9
x, y, z = print(mí # Kết 3.9. min( ìy có tác dụng trả về số nhỏ nhất trong các số được truyền vào. ^ưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import modules math. VÍ DỤ: x , y = 5, 9 p rint(m in(x, y)) T r a n g 23 | 88
Lập trình Python cơ bản | Dương Thành Long
# Kết quả:
5
x, y, z = 5, 1, 3 p r i n t ( m i n ( x , y, z ) ) # Kết quả: 1 3.10. modf(). Hàm này có tác dụng chuyển đổi một số về một tuple. Tuple này chứa ph ìn thập phân và phần nguyên của số đó, lưu ý tất cả các giá trị trong [up^e này đều ở dạng float. VÍ DỤ:
' i m p o r t math
o
ST
x = 5.278 print(m ath.m odf(x)) # Kết quả:
( 0. 27 7 9 99 9 99 99 9 99
x = -1 0 2 .6 9 8 7 4 print(m ath.m odf(x)) # Kết quả:
(-0 .6 9 8 7 4 0 0 0 0 0 0 0 0 0 0 8 , - 1 0 2 . 0 )
3.11. pow(). Hàm này có tác dụng trả về kết quả của phép xy, với x là tham số thứ nhất, y là tham số thứ 2. ,ÍD l>
th
x, y = 5, 2
o
pr in t( m a t h .p o w ( x , y)) # Kết quả: 2 5 . 0
x, y = 10, 5 T r a n g 24 | 88
Lập trình Python cơ bản | Dương Thành Long
prmnt(math.pow(x, y)) # Kết quả: 1 0 0 0 0 0 .0 0 3.12. round(). Hàm này có tác dụng làm tròn số về dạng cần thiết. L ưu ý: Hàm này không nằm trong module math, nên các bạn không cần phải import modules math. Cú pháp: m a t h . r o u n d ( n u m b e r , c o u n t = 0) T rong đó: number là số mà các bạn cần làm tròn.
Cr
<r
count là số mà các bạn muốn làm tròn sau dấu phẩy. Mặc đinh thì count = 0. V í D ụ : ...............
.................................
x = 5 .1 5 7 4 2 print(round(x)) # Kết quả:
5
1 ™
’x = 1 0 .6 7 7 7 8 1
\^
prmnt(round(x, 2)) # Kết quả: 1 0 . 6 8 3.13. sqrt(). Hàm này có tác dụng trả về căn bậc 2 của một số, với điều kiện số đó phải lớn hơn VÍ DỤ:
= 9 rint(m ath.sqrt(x)) # Kết quả:
3.0
x = 1 0 .6 7 7 7 8 1 T r a n g 25 | 88
Lập trình Python cơ bản | Dương Thành Long
print(m ath.sqrt(x)) # Kết quả:
3.2 6 7 6 8 7 4 0 8 5 5 0 5 7 9
3.14. acos(). ong Hàm này có tác dụng tính cosine của một số. Với điều kiện số đó phải nằm trong khoảng: -1<= x <=1. VÍ DỤ: i m p o r t math
x = 1 print(m ath.acos(x)) # Kết quả: 0 . 0
&
<r
x = 0.5 print(m ath.acos(x)) # Kết quả: 1 .0 4 7 1 9 7 5 5 1 1 9 6 5 9 7 9 3.15. cos(). Hàm này cũng trả về cosine của m ột số, nhưng số này được tính theo radian. VÍ DỤ: i m p o r t math
x = 1 print(ma t h . c o s ( x ) ) # Kết quả: 0 .5 4 0 3 0 2 3 0 5 8 6 8 1 3 9 8
.5 )rint(m ath. cos(x)) # Kết quả: 0 .8 7 7 5 8 2 5 6 1 8 9 0 3 7 2 8 3.16. asin().
T r a n g 26 | 88
Lập trình Python cơ bản | Dương Thành Long
Hàm này có tác dụng trả về sine của một số. Với điều kiện số đó phải nằm trong khoảng: -1<= x <=1. VÍ DỤ: i m p o r t math
x = 1
C >^
print(m ath.asin(x)) # Kết quả: 1 .5 7 0 7 9 6 3 2 6 7 9 4 8 9 6 6
x = 0 .5 print(m ath.asin(x))
&
# Kết quả: 0 .5 2 3 5 9 8 7 7 5 5 9 8 2 9 8 9 3.17. sin(). , „ 5 ,số„ này à „ được tính theo radian. Hàm này cũng trả về sine của một số, nhưng VÍ DỤ: i m p o r t math , = 1 xp r = i n t1( m a t h . s i n ( x ) ). # Kết quả: 0 .8 4 1 4 /0 9 8 4 8 0 7 8 9 6 5
........ x : ; - 5^ print'm a th . s i n ( x ) ) # Kết quả: 0 .4 7 9 4 2 5 5 3 8 6 0 4 2 0 3 L8. atan() atan - tan(). 3.18. Tương tự như với asin() - sin() và acos() - cos() ta cũng có atan() và tan() với chức năng là tính tangent của một số. VÍ DỤ: i m p o r t math T r a n g 27 | 88
Lập trình Python cơ bản | Dương Thành Long
x = 1 print(m ath.atan(x)) # Kết quả: 0 .7 8 5 3 9 8 1 6 3 3 9 7 4 4 8 3
print(m ath.tan(x)) # Kết quả: 1.55740772. 3.19. radians(). Hàm này có tác dụng chuyển VÍ DỤ: i m p o r t math
x = 1 p rin t(m ath . radians(x) # Kết q uả: 0 .0 1 7 4 5 3 2 9
x = 90 p rin t(m ath . radians(x) # Kết quả: 1.57079632679 48966
T r a n g 28 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 6: C á c to á n tử c ơ b ả n tr o n g P y th o n
1. Toán tử số học - A rithm etic O perators. Toán tử số học trong python được thể hiện dưới 7 dạng cơ bản sau: (trong các ví dụ
Toánytử
Mô Tả g
"
g
"
+
Toán tử cộng các giá trị lại với nhau Toán tử trừ các giá trị lại với nhau
Ví Dụ a+b
,2
, - b = -2 -
*
Toán tử nhân các giá trị lại nhau
/
Toán tử chia các giá
a / = 0.7142857142857143
%
Toán tử chia lấy p hần dư
a %b =5
Toán tử
a ** b = 78125
»*■' b = ab
b = 42 b
làm tròn xuống.
57 => 0 0.9 => 0
a // b = 0
-0.7 => -1 -0.1 => -1 2. Toán ín tử tủ q uan hệ. Dạng toán tử này dùng để so sánh các giá trị với nhau kết quả của nó sẽ trả về là True nếu đúng và False nếu sai. Và nó thường được dùng trong các câu lệnh điều kiện. T r a n g 29 | 88
Lập trình Python cơ bản | Dương Thành Long
Trong Python thì nó cũng tồn tại 6 dạng toán tử quan hệ cơ bản như sau: (trong các ví dụ dưới đây thì ta coi a có giá trị là 5 và b có giá trị là 7). T oán tử
Chú Thích
Ví Dụ
So sánh giá trị của các đối số xem có bằng nhau hay không. Nếu bằng nhau thì kết quả trả về sẽ là True và ngược lại sẽ là False.
a == b // Faalse ___________ Ç
J *
!=
So sánh giá trị của các đối số xem có khác nhau hay không. Nếu khác nhau thì kết quả trả về sẽ là True và ngược lại sẽ là False.
a !-' b //True
<
Dấu < đại diện cho phép toán nhỏ hơn, nếu đối số 1 nhỏ hơn đối số 2 thì kết quả sẽ trả về là True và ngược lại sẽ là False.
a < b //True
>
Dấu > đại diện cho phép toán lớn hơn, nếu đối số 1 lớn hơn đối số 2 thì kết quả sẽ trả về là True và ngược lại sẽ là False.
a > b //False
<=
Dấu > đại diện cho phép toán nhỏ hơn hoặc bằng, nếu đối số 1 nhỏ hơn hoặc bằng đối số 2 thì kết auả sẽ t ả về là True và ngược lại sẽ là Fa
a <= b //True
>=
Dấu > đại diện cho phép toán lớn hơn hoặc bằng, nếu đối số 1 lớn hơn hoặc bằng đối số 2 thi kết quả sẽ trả về là True và ngược lại là False.
a>= b //False
3. Toán tử logic. in tử logic trong Python hoàn toàn giống như các ngôn ngữ khác. Nó gồm có 3 aểu cơ bản như sau: Toán T ử
Chú Thích
T r a n g 30 | 88
Lập trình Python cơ bản | Dương Thành Long
and
Nếu 2 vế của toán tử này đều là True thì kết quả sẽ là True và ngược lại nếu 1 trong 2 vế là False thì kết quả trả về sẽ là False.
or
Nếu 1 trong 2 vế là True thì kết quả trả về sẽ là True và ngược lại nếu cả 2 vế là False thì kết quả trả về sẽ là False.
not
Đây là dạng phủ định, nếu biểu thức là True thì nó sẽ trả về là False và ngược lại.
/7 1 r i VTx
rr
Ỉ
4. Toán tử biw ter. _ ,s ng mình có 2 biến a Toán tử này thực hiện trên các bit của các giá trị. Hãy tưởng = 12 và b = 15 nhưng nếu chúng ta chuyển chúng sang hệ nhị phân thì 2 biến này sẽ có giá trị như sau: a = 00001100 và b = 00001111. Về phầ n này thì rất ít khi sử dụng và cũng khó dịch sang tiếng việt nên ở phần này chỉ viết toán hạng và ví dụ thôi. Toán T ử
Ví Dụ
&
(a & b) = 12 (000 (a I b) = 14 (00001111)
A
(a A D) - 2 (00000010) -13 (00001101)
<<
a<<a = 49152
>>
a>>a = 0
5. Toán tử kh ti thác. Toái tử này thường được dùng để kiểm tra xem 1 đối số có nằm trong 1 tập hợp đối số hay không (list). Trong Python hỗ trợ chúng ta 2 dạng toán tử như sau:
o
Giả si sử: a = 4, b = [1,5,7,6,9] Toán T ử
Chú Thích
Ví Dụ
T r a n g 31 | 88
Lập trình Python cơ bản | Dương Thành Long
. in
Nếu 1đối số thuộc một tập đối số nó sẽ trả về rri’ v ~ 1 -, True và ngược lại/
• 1 ,n-. a in b //False
t. n0 in
Nếu 1 đối số không thuộc một tập đối số nó sẽ trả về True và ngược lại/
a not in b //True
6. Toán tử xác thực. Dạng Toán tử này dùng để xác thực hai giá trị xem nó có bằng nhau hay không. Và trong Python hỗ trợ chúng ta 2 dạng sau: Giả sử: a = 4, b =5 Toán T ử . is
Chú Thích Toán tử này sẽ trả về True nếu a == b và . , ~ ngược lại
.Toán tử này sẽ trả về True nếu aTrue != b nếu và a ! not is “ 1 _r ngược lại
Ví Dụ a is b //False
a is not b //True
.,//rr,__
A T r a n g 32 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 7: C â u lệ n h rẽ n h á n h tr o n g P y th o n
1. Luồng xử lý. Nếu như trong thực tế, chúng ta thường có các trường hợp để xử lý vấn đề thì trong ngôn ngữ lập trình nó cũng như thế khái niệm này trong lập trình gọi là rẽ nhánh. Nói một cách dễ hiểu hơn thì ''nếu điều kiện này đúng thì thực hiện khối lệnh A, nếu sai thì thực hiện khối lệnh B". Ở đây các điều kiện trả về giá trị khác 0 hoăc bằng
F
Ớ If condition is irtift
tf condition is false
conditional
Ỏ
Cũdo
2. Các câu lệnh rẽ nhá Câu lệnh rẽ
ing Python được thể hiện qua cậu lệnh if-else với các dạng sau:
Câu lệnh ij
o
If-else dị h ra tiếng Việt có nghĩa là nếu thì và nó ở trong lập trình cũng thế. Các điều kiện mà mệnh đề if đưa ra trả về là đúng (True) thì nó sẽ thực thi code bên trong mệnh đề if và ngược lại nếu điều kiện đó sai thì nó sẽ thực hiện code trong mệnh đề else. Cú p háp của câu lệnh if-else: if condition: #code else: T r a n g 33 | 88
Lập trình Python cơ bản | Dương Thành Long
#code T rong đó: condition là điều kiện của mệnh đề if. VÍ DỤ: Viết 1 chương trình kiểm tra xem giá trị của biến a bằng 100 thì in ra là đúng và nếu không bằng thì in ra là sai. a = 100 if
(a == 1 0 0 ) : p r i n t ( ’Dung’ )
else: p r i n t ( ’S a i ’ ) # Ket qua: Dung Nếu như trong trường hợp chúng ta không cần thực thi điều gì k hi điều kiện đó không đúng thì chúng ta có thể bỏ mệnh đề else cho gọn code. VÍ DỤ: Bỏ mệnh đề else ở VD trên đi. a = 100 if
(a == 1 0 0 ) : p r i n t ( ’Dung’ )
# Ket qua: Dung Và đương nhiên là chúng ta cũng có thể lồng các if đó lại với nhau được. VÍ DỤ: Viết chương trình kiểm tra xem điểm có hợp lệ hay không, nếu hợp lệ thì in ra là với điểm đó thì qua me n hay học lại a = 7 if
(a >= 0 and a <= 1 0 ) : if
(a >= 4 ) : p r i n t ( ’Qua mon’ )
else: p r i n t ( ’Hoc l a i ’ ) else: p r i n t ( ’Diem khong hop l e ’ ) # Ket qua: Qua mon Câu lệnh if-elif-else. T r a n g 34 | 88
Lập trình Python cơ bản I Dương Thành Long
Trong thực tế thì không phải lúc nào chúng ta cũng có 2 trường hợp nếu thì. Mà có đôi lúc tồn tại vô vàn điều kiện khác nhau và để giải quyết điều này thì trong Python có cung cấp thêm co chúng ta mệnh đề if-elif-else với cú pháp như sau: if condition: # code eLif condition2: # code eLif condition3: # code else: #code T rong đó: thì sau các mệnh đề i f và e lif sẽ tồn tại các đ :ều kiện condition tương ứng, và nếu như các điều kiện đó đúng thì code ở trong mệnh đề đó sẽ được thực hiện. VÍ DỤ: Giải quyết lại bài toán tính điểm ở trê 1 bằn g mệnh đề if-elif-else.
ỉf
(a >= 4 and a <= 1 0 ) : p r i n t ( ’Qua mon, )
elif
(a >= 0 and a <4 ) : p r i n t ( , Hoc l a i , )
p r i n t ( ’Diem khong hop l e ’ ) # Ket qua: Qua mon
T r a n g SS I sa
Lập trình Python cơ bản | Dương Thành Long
B à i 8: V ò n g lặ p tr o n g P y th o n
1. Vòng lặp là gì? Vòng lặp (tiếng anh là loop) là một thuật ngữ dùng để diễn tả một hành động hay một cụm hành động được lặp đi lặp lại nhiều lần. Và trong Python thì nó cung cấp cho chúng ta 2 dạng vòng lặp chính đó là: ..............................................
while 2. Vòng lặp for trong Python.
SN'
Vòng lặp for ở trong Python có tác dụng lặp các biến dữ li ệu có ti troong list, tuble hoặc string... Sử dụng cú pháp như sau: for variable in data: # code T rong đó: variable là các biến tạm dùng để chứa dữữ ii^u sau sau mỗi lần lặp. data là một list, tuple hoặc string,... chứa giá trị cần lặp. VÍ DỤ: Khai báo 1 string name = "thanhlong" và dùng vòng lặp for để lặp ra từng ký tự của nó. name = " t h a n h l o n g " f o r i i n name: p r in t(i) # ket qua: # k
w
# aA
o
'h #I #o #n T r a n g 36 | 88
Lập trình Python cơ bản | Dương Thành Long
#g Và đương nhiên là các vòng for này cũng có thể lồng nhau. VÍ DỤ: Vòng for lồng nhau. name = " t h a n h l o n g " f o r i in r a n g e ( 0 ,1 0 ) :
ờ
f o r j in r a n g e ( i , 1 0 ) : print(j, print
end = " ")
("")
# Ket qua:
&
# 0123456 789 # 123456 789 #23456 789
ỏ
#3456 789 #456789 #56 789 #6 789 # 789 #89 #9
à
Chú thích: Ở đây sử dụng hàm range(a,z) để tạo ra các con số từ a -> z, ở các phần sau chúng ta sẽ tìm hiểu rõ hơn về hàm này. 3. Vòng lặp whi'e. Vòng lặp while trong Python dùng để lặp các dữ liệu mà giá trị ngừng có của nó là chưa biết bi trước. Cú phá láp sử dụng: z
.e condition: # code
Trong đó: condition là điều kiện quyết định vòng lặp while có được chạy hay không. Nếu condition trả về giá trị là True thì vòng lặp while mới được thực thi, và ngược lại thì nó sẽ không thực thi nếu condition trả về False. T r a n g 37 | 88
Lập trình Python cơ bản | Dương Thành Long
VÍ DỤ: Viết một vòng lặp while in ra dãy số từ 1 đến 10.
w h i l e ( i <= 1 0 ) : print(i) , 1 ^+= 1 , , Đối với vòng lặp while này thì chúng ta cũng có thể lồng nó lại với nhau được. VÍ DỤ: Lồng 2 vòng lặp while. 1 = 1
■
w h i l e ( i <= 1 0 ) : j = 1 w h i l e ( j <= 10 - i ) print(j,
end =
Ớ
j += 1 p rin t(" ”) i += 1 # ket qua: # 123456 789 # 123456 78 # 123456 7 # 123456 # 12345 # 1234 # 12 # khóa tác động đến vòng lặp. Thông thường trong một số trường hợp vòng lặp của chúng ta sẽ có thể không cần thực thi code trong một số vòng lặp cụ thể hay là cần nhảy lần vòng lặp đó và thực thi các lần lặp tiếp theo, và để làm được điều đó thì trong Python có hỗ trợ chúng ta 2 từ khóa để tác động đến vòng lặp là: T r a n g 38 | 88
Lập trình Python cơ bản | Dương Thành Long
break - break giúp chúng ta chấm dứt vòng lặp tại thời điểm nó xuất hiện và các code cùng cấp phía sau nó sẽ không được thực thi nữa. continue - giúp chúng ta nhảy qua lần lặp hiện tại và chuyển đến lần lặp tiếp theo, các code cùng cấp phía sau nó cũng sẽ không được thực hiện. VÍ DỤ: Lệnh break. i = 1
'$ y
ờ
w h i l e ( i <= 1 0 ) : p r in t(i) i f i == 5 : break
&
i += 1
ỏ
# ket qua: #1 #2 #3 #4 #5 VÍ DỤ: Lệnh continue. f o r i in " t h a n h l o n g " : i f i == " n " : continue p r iỉ -i itt(( i .
end=" ")
# ket qua: a h log
T r a n g 39 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 9: H à m tr o n g P y th o n
1. H àm là gì? Thực sự thì về khái niệm của hàm thì nó cũng rất khó có thể giải thích được, ở đây chúng ta sẽ tóm lại bằng một khái niệm đơn giản như sau: Hàm là một tập các khối lệnh được viết ra nhằm cho việc tái sử dụng khối lệnh. Nếu như thấy khó hiểu, thì hãy tưởng tượng như chúng ta có một đoạn c >de tính tổng 2 số chẳng hạn, nếu như ở một vị trí khác chúng ta cũng cần tính tổng 2 số thì bạn lại phải viết lại đoạn code đã từng viết rồi => như thế sẽ rất tốn thời gian. Và khái niệm hàm sinh ra để giải quyết vấn đề đó. Nó giúp cho chúng ta có thể tái sử dụng lại những đoạn code có chức năng giống nhau.... 2. K hai báo hàm trong Python. Để khai báo một hàm trong Python thì chúng ta sử dụnơ từ khóa def với cú pháp như sau: d e f t e n _ h a m ( t h am s ố . . . ) : # câ u l ệ n h T rong đó: ten_ham là tên của hàm mà người lập trình muốn đặt. Lưu ý: Tên hàm không được bắt đầu bằng số và không được chứa các ký tự đặc biệt tr ừ ký tự _ tham số... là các tham số bạn m uốn truyền vào hàm, nếu không có tham số thì để trống trường này. Ví dụ 1: Khai Dáo một Elearning. c3vietduc.daklak. edu.vnỉ".
hàm
in
ra
chữ
"Welcome
def s a y ( ) : el come t o E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n " ) Ví dụ 2: K hai báo một hàm tính tổng của 2 số bất kỳ do người dùng truyền vào. d e f sum(a,
b):
p rin t("su m = " + s t r ( a + b)) Trong ví dụ này a, b sẽ là tham số mà chúng ta truyền vào khi gọi hàm. 3. Gọi hàm . Để gọi một hàm đã được khai báo rồi, thì chúng ta sử dụng cú pháp sau: T r a n g 40 | 88
to
Lập trình Python cơ bản | Dương Thành Long
ten_ham() #hoặc ten_ham(tham s ố . . . )
i n r i à - — - , , a « Ị. tham số... là các tham số chúng ta muốn truyền vào trong hàm. Ví dụ 3: Gọi hàm say ở trong Ví dụ 1. print("Welcome t o E l e a r n i n g . c 3 v i e t d u c .d a k l a k . e d u . v n " ) say() # Ket qua: Welcome to Elearning.c3vietduc.daklak.edu.vn Ví dụ 4: Gọi hàm sum ở trong Ví dụ 2. d e f sum(r,
b):
p rin t("su m = " + s t r ( r + b)) # tinh tong 2 so 4,5 sum(4, 5) # Ket qua: sum = 9
# tinh tong 2 so 3,7 sum(3, 7) # Ket qua sum ■ 10
< /
4. H àm có kết quả trả về. ^ Trong trư ờng hợp muốn sử dụng kết quả của hàm vừa tính để thực hiện các mục đích khái. Thì bạn chỉ cần thêm từ khóa re tu rn trước kết quả muốn trả về. VI b Ụ ; Khai báo lại hàm sum ở VD2 thành hàm có kết quả trả về. d e f sum( a, b ) : r e t u r n a+ b Bây giờ khi muốn sử dụng kết quả của nó thì ta có thể gán nó vào một biến, hay một đối tượng và sử dụng như bình thường. d e f sum(r,
b): T r a n g 41 | 88
Lập trình Python cơ bản | Dương Thành Long
r e t u r n a+ b c = sum(4,
5);
p r i n t ( " T o n g cua 4 va 5 = " + s t r ( c ) ) 5. T ham số m ặc định cho hàm . Thông thường nếu như chúng ta khai báo hàm mà có tham số truyền vào, nhưng lúc s JL ỵ gọi hàm chúng ta lại không truyền tham số đó vào thì chương trình sẽ báo _ • 1
V
_
J .
1 _ • 1 1
Ạ
,
Ạ
,1
Á
\
,1
V
1
i
V
1
íy 1
/
1 A •
%
VÍ DỤ: Giả sử hàm tính tổng như sau. d e f sum(a,
r
b):
return a + b Và chúng ta thử gọi mà không truyền tham số vào hàm.
' ú'
,<CN'
Windows Powershell
Pi> E : \ t u t s \ p y t h o n > p y t h o n P y t h o n 3 . 6 . 2 <m3 . 6 . 2 : 5 f d 3 3 b 5 , J u l 8 2 0 1 7 , 0 4 : 1 4 : 3 4 ) [MSC w . 1 9 0 0 32 b i t T ype " h e l p ' 1, ' ’c o p y r i g h t " , ' ‘c r e d i t s " o r " l i c e n s e " f o r n o r e i n f o r m a t i o n . >>> d e f s u n ( a . b > : ... return a + b >>> s u m O Traceback
<nost
recent
c a ll
< I n t e l > ] on Win32
la st> :
F i l e " < s t d i n > " , l i n e 1 , i n <m o du le > T ype E rro r: s u n ( ) n i s s i n g 2 r e q u i r e d p o s i t i o n a l cirgunents:
’ a ’ a n d *b'
Chương trình đã báo lỗi là chúng ta đang thiếu 2 giá trị, bắt buộc phải truyền vào hàm.... Và để hạn chế trường hợp này thì trong Python cũng cung cấp cho chúng ta thiết lập luôn giá trị mặc định của tham số khi khai báo hàm. Bằng cách sử dụng dấu = với cú pháp như sau: d e f t e n _ h a m ( t h am s ố = Giá t r ị mặc đ ị n h ) : # câu lệnh T rongg đó: Giá trị rị m ỉc đinh là giá trị mặc định của tham số đó muốn gán. VÍ DỤ: Bay g iờ chúng ta sẽ gọi lại hàm sum ở trên và gọi khi không truyền giá trị và c ó truyền giá trị. IPS E :\ t u t s \ p y t hon > python Python 3 . 6 . 2 <v3. 6 . 2 :5fd33b5, J u l 8 2017, 04:14:34> [MSC v.1900 32 b it < In te l> l on Win32 •Type "h e lp " , " co p y rig h t" , ''c r e d it s " o r " lic e n s e " f o r more in fo rm atio n .
(■>>> ...
def
sum < a
= 5 ,
b
= 7>:
retu rn a + b
>>> p r in t < su n O > 12 >>> p rin t< sum<3, 2> > 5
imm: T r a n g 42 | 88
Lập trình Python cơ bản | Dương Thành Long
6. P hạm vi của biến trong hàm (Biến cục bộ). Khi một biến được khai báo ở trong hàm thì nó chỉ có thể được sử dụng ở trong hàm đó. VÍ DỤ: def say_hello(): a = "Hello" print(a)
.C F
print(a) # Lỗi: name 'a' is not defined Và chúng ta cũng không thể nào thay đổi giá trị của biến (biến bình thường) mà tác động ra ngoài hàm được. VÍ DỤ: a = " H e l l o Guy!" def s a y ( a ) : a = " E l e a r n i n g . c 3 v i e t dluu ..d. daakkl laakk..e d u . v n " print(a) say(a) # KQ: Elearning.c3vietduc.daklak.edu.vn # KQ: Hello Guy! ^n mà có kiểu dữ liệu là list thì chúng ta lại có thể là được điều đó.
d f
change(a): a [ 0 ] = 1000 print(a)
change(a) # KQ: [1000, 10, 15] print(a) T r a n g 43 | 88
Lập trình Python cơ bản | Dương Thành Long
# KQ: [1000, 10, 15] 7. Biến Global(Biến toàn cục). Ngoài những cách hoạt động của biến đã trình bày ở bài trước thì chúng ta còn có 1 cách nữa để có thể tác động đến các biến bên ngoài hàm khi đang ở trong hàm. Đó là sử dụng global variable - biến toàn cục, khi một biến là toàn cục thì chúng ta có thể gọi và tác động đến nó từ bất kỳ đâu trong chương trình. Để khai báo một biến là biến toàn cục thì chúng ta chỉ cần thêm từ khóa g Jobaỉ trước tên của nó như sau: g l o b a l te n b i e n VÍ DỤ: Mình sẽ thay đổi giá trị của biến khi ở trong hàm. a = " H e llo G uy!” def s a y (): * glo b a l a
T o *
...........................
a = "Elearning.c3vietduc.daklck.edu.vn" print(a)
Js a y ( )
^
# KQ: Elearning.c3vietduc.daklak.edu.vn print(a) # KQ: Elearning.c3vie duc. daklak.edu.vn 8. T ruyền vô số tham s ố vào hàm . Trên thực tế, không phải lúc nào chúng ta cũng biết được chính xác số lượng biến truyền vào trong hàm. Chính vì thế trong Python có cũng cấp cho chúng ta khai báo một tham số đại diện cho các biến truyền vào hàm bằng cách thêm dấu * vào trước tham số đó. VÍ DỤ: Khai báo hàm get_sum để tính tổng các tham số truyền vào hàm. g e t _ s u m( * n u m) : tmp = 0 # d u y e t ca c tham so f o r i i n num: tmp += i T r a n g 44 | 88
Lập trình Python cơ bản | Dương Thành Long
r e t u r n tmp
r e s u l t = g e t _ s u m( 1 , 2, 3, 4, 5)
print(result) # KQ: 15
< r
T r a n g 45 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 10: C h u ỗ i(x â u ) tr o n g P y th o n
1. K hai báo: I
•
a
'
f
^
•
I
m
Tên b iế n xâu = ' Nộ i dung x â u ' T rong đó:
c>
Tên biến xâu: Do người lập trình đặt Nội dung xâu: Mặc định nội dung cho xâu hoặc để trống. Ví dụ: Name = ' Dương Thành Long' 1. Các ký tự đặc biệt trong chuỗi. Để sử dụng các ký tự đặc biệt trong Python ký tự \ trước nó.
ữ liệu thì mọi người sử dụng
VÍ DỤ: Khi muốn in ra " mà python lại sử dụng "" để chứa nội dung in ra chuỗi. p r i n t ( " W e b s i t e V , E l e a r n i n g , c 3 v : e t d u c . d a k l a k . e d u . v n \ " ") # We b s i t e " E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n " Tương tự chúng ta có thể làm với '. p r i n t ( ’We b s i t e V E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n V
’)
# We b s i t e ’ E l e a r n : n g . c 3 v i e t d u c . d a k l a k . e d u . v n ’ Các ký tự đặc biệt khác: \ n ngắt xuống dòng và bắt đầu dòng mời. \ t đẩy nội d ng phía sau nó cách 1 tab. \ a chuôn g cảnh báo. \ b x óa bỏ khoảng trắng phía trước nó. N^oài ra người lập trình cũng có thể sử dụng để in ra các ký tự đặc biệt khác bằng việc sử dụng theo cú pháp \xnn, với n là 0->9, hoặc a->f hoặc A->F. VÍ DỤ: print("Website \ t
Elearning.c3vietduc.daklak.edu.vn")
# We b s i t e
Elearning.c3vietduc. daklak.edu.vn T r a n g 46 | 88
Lập trình Python cơ bản | Dương Thành Long
2. Định dạng chuỗi. Ngoài những cách in ra dữ liệu ở trên thì người lập trình cũng có thể sử dụng các từ khóa định dạng cho kiểu giá trị và ràng buộc nó vào chuỗi. Sử dụng với cú pháp: print("%type" %(binding)) T rong đó: type là các kiểu dữ liệu các bạn muốn binding và thay thế vào vị trí đó. binding là giá trị mà các bạn muốn ràng buộc vào vị trí được xác định t ong chuỗi. Type là các kiểu sau: Cú pháp fom at
Mô tả
%c
character
%s
chuỗi
%i
số nguyên
%d
số nguyê yên
%u
số nguy ên
&
át phán ập lục phán (in thường) thập lục phán (in hoa) số mũ (với e thường) số mũ (với e hoa) số thực dạng rút gọn của %f and %e
T r a n g 47 | 88
Lập trình Python cơ bản | Dương Thành Long
%G
dạng rút gọn của %f and %E
VÍ DỤ: Thực hiện ràng buộc 1 chuỗi vào trong 1 chuỗi. guy = "Ban" full = "Chao mung %s den E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n " %(guy)
voi
print(full) # Chao mung Ban Elearning.c3vietduc. daklak.edu.vn
den
voi
Trong đó nếu như bạn muốn ràng buộc nhiều chuỗi vào tron g ch bạn muốn ràng buộc cách nhau bởi 1 dấu , VÍ DỤ: guy = "Ban" doamin = "Elearning.c3vietduc.daklak.edu.vn" full = "Chao mung %s den voi website %s" %(guy, doamin) print(full) # Chao mung Ban den voi website Eleaining.c3vietduc.daklak.edu.vn 3. T ruy cập tới từng giá trị của chuỗi. Chuỗi trong Python được lưu trữ vào trong các ô nhớ với mỗi ô nhớ tương đương với một ký tự đơn (khác vớ các ngôn ngữ khác) và các ký tự này được xếp liên tiếp với nhau. Do đó kiểu lữ liệ ' chuỗi trong Python có thể được truy xuất đến từng ký tự trong nó. Để truy cập đến từng ký tự bên trong chuỗi, sử dụng cú pháp sau: stringName[ inoex] T rong đó : s t r ingName là tên của biến chứa chuỗi, hoặc chuỗi. indej in d e x là vị trí của ký tự muốn lấy ra. Index này hỗ trợ chúng ta truy xuất được cả 2 chiều của chuỗi nếu: Tính từ t đầu thì nó bắt đầu từ 0. Tính từ cuối thì nó bắt đầu từ -1. VÍ DỤ: name = "Thanh Long" T r a n g 48 | 88
Lập trình Python cơ bản | Dương Thành Long
print(name[0]) # T print(name[-1]) # g Nếu trong trường hợp muốn lấy nội dung của một đoạn chuỗi trong chuỗi đó thì có thể sử dụng cú pháp sau: stringName[start:end] T rong đó: stringName là tên của biến chứa chuỗi, hoặc chuỗi. start là vị trí của ký tự bắt đầu lấy, nếu để trống start thì nó sẽ lấy từ 0. end là vị trí kết thúc (nó sẽ lấy trong khoảng từ start đến < end), nếu để trống end thì nó sẽ lấy đến hết chuỗi. VÍ DỤ: name = "Ti n h o c ” p r i n t ( n a m e [ 0 : 2 ] ) # Ti p r i n t ( n a m e [ 4 : ] ) # hoc
ị? T r a n g 49 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 11: L is t(d a n h sá c h , m ả n g ) tr o n g P y th o n
1. List là gì? và khai báo list trong Python. List trong Python là một dạng dữ liệu cho phép lưu trữ nhiều kiểu dữ liệu khác nhau trong nó, và chúng ta có thể truy xuất đến các phần tử bên trong nó thông qua vị trí của phần tử đó trong list. Ở đáy, nếu như đã tìm hiểu qua một ngôn ng ữ nào đó thì có thể coi list trong Python như một mảng tuần tự trong các ngôn n g 1 " Để khai báo một list trong Python thì chúng ta sử dụng cặp dấu n và bên trong là các giá trị của list. [valuel, v a l u e 2 , v a l u e N ] st. T rong đó: value1, value2,..., valueN là các giá trị của list. VÍ DỤ: Khai báo 1 list chứa tên các học sinh. name = [ ’Duong Thanh Long’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
2. T ruy cập đến các giá trị trong list. Để ‘ru y ! ập. i list t t được !rong “ stdấu 'hì 'băt í đầu bạn từ l!“0 ttheo r gchiều * như đối với ', Các phần tử đến trongcác một đánh từ trái sangchuỗ phải!và từ -1 theo chiều từ phải qua trái.
[a, b, c, d] ex: 0 1 2 3 index: -4 -3 -2 -1 VÍ DỤ: T ruy xuất đến từng phần tử một của list trong VD trên. name = [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
p . i n t ( n a m e [ 0 ] ) # Ti n hoc p . i n t ( n a m e [ 1 ] ) # Nguyen Van A
o
p r i n t (I n a me [ 2 ] ) # Nguyen Th i E # hoặc p r i n t ( n a m e [ - 3 ] ) # Ti n hoc p r i n t ( n a m e [ - 2 ] ) # Nguyen Van A T r a n g 50 | 88
Lập trình Python cơ bản | Dương Thành Long
p r i n t ( n a m e [ - 1 ] ) # Nguyen Thi E Trong trường hợp muốn in ra một phần của list, sử dụng cú pháp sau: list[start:end] T rong đó: list là tên của biến^ chứa list. start là ví trí bắt đầu lấy ra list con. Nếu để trống thì nó sẽ lấy từ đầy list. end là vị trí kết thúc. Nếu để trống thì nó sẽ lấy đến phần tử cuối cùng ( ủa li t. VÍ DỤ: Lấy ra 2 phần tử đầu của list trên. name = [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
print(name[0:2]) # [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ]
# hoặc
>
p r i n t ( n a m e [- 3 : -1]) ................. _ . . . # [ ’Ti n h o c ’ , ’Nguyen Van A ’ ] _
3. Sửa đổi và xóa bỏ giá trị ph ần tử t 'ong list. Sau khi đã truy cập được đến các phần tử trong list rồi thì có thể xử lý nó như nào tùy thích theo ý (sửa - xóa). Sửa phần tử trong list Để sửa giá trị c ủa các phần tử trong list thì chỉ cần truy cập đến phần tử mà cần sửa đổi và tiến hành gán giá trị mới cho nó. VÍ DỤ: S ửa name thứ 2 trong list ở ví dụ trên thành 1996. name = [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
pi i n t ( n a m e ) # [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
V Lname[1] * == 1996 I print(name) # [ ’Ti n h o c ’ , 1996,
’Nguyen Thi E ’ ] T r a n g 51 | 88
Lập trình Python cơ bản | Dương Thành Long
Xóa phần tử trong list Để xóa một hoặc nhiều phần tử trong list thì ta cần truy cập đến phần tử cần xóa và dùng hàm del để xóa. Và sau khi chúng ta xóa phần tử trong list thì index của list sẽ được cập nhật lại. VÍ DỤ: Xóa phần tử thứ 3 trong list trên. name = [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
print(name) # [ ’Ti n h o c ’ ,
’Nguyen Van A ’ ,
’Nguyen Thi E ’ ]
' d e l name[2]
/ V
.
print(name) Kết quả:
.
O
N
'
['Tin hoc’, ’N guyen Van A'] 4. List lồng nhau. Do list có thể chứa nhiều kiểu dữ liệu khác nhau lên chúng ta hoàn toàn có thể khai báo một list chứa một hoặc nhiều list khác nhau. VÍ DỤ: option = [12,5,1996] myLi s t = [ ’Ti n h o c ’ , o p t i o n ] print(myList) Kết quả: ['Tin hoc', [12, 12, 5, 5, 19' 1996]] Và cứ như thế chúng ta có thể lồng N list khác vào trong list. Đối với li st lồng nhau như này thì chúng ta cũng truy xuất đến các phần tử như bình thường, theo cấp từ ngoài vào trong. VÍ DỤ: Tiay cập vào phần tử đầu tiên trong list option. option = [12,5,1996] myList = [ ’Ti n h o c ’ , o p t i o n ] print(myList) # [ ’Ti n h o c ’ , [1 2 , 5, 199 6 ] ]
T r a n g 52 | 88
Lập trình Python cơ bản | Dương Thành Long
s u b L i s t = m y L i s t [ 1 ] # [1 2 , 5, 1996] s u b L i s t [ 0 ] # 12 # hoặc có t h ể v i ế t ngắn gọn như sau m y L i s t [ 1 ] [ 0] # 12
T r a n g 53 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 12: T u p le ( h ằ n g ) tr o n g P y th o n
1. Tuple Ttrong Python là gì?
Tuple trong Python là một kiểu dữ liệu dùng để lưu trữ các đối tượng không thay đổi ' - • *---------^ư ữ của ủ nó ' cũng ũ 0 ___0___ . giống .Ạ---------kiểu 0 ______ 0 số). Còn ____’^ ____________ 0 „hư vềề____vo___ sau (giống như hằng lại thì ' cách lưu ____________ trữ khá n kiểu dữ liệu list mà bài trước chúng ta đã được tìm hiểu.
...............
-V
Để khai báo một tuple thì mọi người sử dụng cú pháp sau: ......................................................... .........
_
Name = ( v a l 1 , v a l 2 , . . ,
valn)
T rong đó: vall, val2,.., valn là các giá trị của tuple. ^ DỤ: Khai báo 1 Tuple chứa các ngày trong tuần. VÍ
...... o
day = ( ’monday’ , ’t u e s d a y ’ , ’f r i d a y ’ , ’ S a t u r d a y ’ , ’ s u n d a y ’ )
’We dne s da y’
,
’t h u r s d a y ’ ,
Nếu khai báo 1 biến chứa các giá trị mà không được bao quanh bởi dấu () thì Python cũng nhận định nó là một tuple (tuy nhiên nên sử dụng cách đầu tiên cho code được tường minh). VÍ DỤ: day = ’monday’ , ’t u e s^d a y ’ , ’wedne! We dnes da y’ , ’t h u r s d a y ’ , ’f r i d a y ’ , ’S a t u r d a y ’ , ’Sunday1 Và nếu như bạn muốn khai báo 1 tupl tuple trống thì bạn chỉ cần khai báo như sau: a = (); . . . . . Còn nếuu như tuple chỉ chứa duy nhất một giá trị thì bắt buộc phải thêm một dấu , nữa :u giá ó. đằng sau " tr ■ ’ đó. ' iu trị VÍ DỤ a = ( 11(0 , ) 2. T ruy cập3 đ n (ác cá( ph ần tử trong Tuple. Để tr uy cập đến các phần tử trong Tuple thực hiện tương tự như đối với chuỗi và list. Các phần tử trong Tuple được đánh dấu từ 0 theo chiều từ trái qua phải.
o
Và ngược lại từ -1 theo chiều từ phải qua trái. VÍ DỤ: Truy cập đến các phần tử trong tuple day ở trong VD trên. day = ( ’monday’ , ’t u e s d a y ’ , ’f r i d a y ’ , ’ s a t u r d a y ’ , ’ s u n d a y ’ )
’We dne s da y’
,
’t h u r s d a y ’ ,
T r a n g 54 | 88
Lập trình Python cơ bản | Dương Thành Long
d a y [ 0 ] # monday day[-2] # Saturday Và nếu muốn lấy ra một tuple con trong tuple hiện tại thì bạn có thể sử dụng cú pháp sau (giống với list và string): tupleName[start:end] T rong đó: start là vị trí bắt đầu lấy. Nếu để trống start thì nó sẽ lấy từ đầu Tuple. end là vị trí kết thúc. Nếu để trống end thì nó sẽ lấy đến hết Tuple. VÍ DỤ: day = ( ’monday’ , ’t u e s d a y ’ , ’f r i d a y ’ , ’ S a t u r d a y ’ , ’ S u n d a y ’ ) d a y [ 1 : 3 ] # ( ’t u e s d a y ’ , d a y [ : 3 ] # ( ’monday’ ,
’t h u r s d a y ’ ,
’We dn e s da y’ )
’t u e s d a y ’ ,
d a y [ 1 : ] # ( ’t u e s d a y ’ , ’s a t u r d a y ’ , ’s u n d a y ’ )
’We dne s da y’
’wed(
’We dne s da y’
sday’) ’t h u r s d a y ’ ,
’f r i d a y ’ ,
3. Các tác vụ khác trên Tuple. Xóa Tuple. Như đã nói ở trên thì khi một tuple đã được khai báo giá trị thì chúng ta không thể sửa đổi hay xóa các giá trị đó đư ợc mà chúng ta chỉ có thể xóa cả tuple đi được thôi. Để xóa một hay nhiều uple thi chúng ta sử dụng hàm del . VÍ DỤ: Mình sẽ x óa Tuple day. day = ( ’monday’ , ’t u e s d a y ’ , ’f r i dd aayy’,, ’ s a t u r d a y ’ , ’ s u n d a y ’ ) -
d e l day
’We dne s da y’
,
’t h u r s d a y ’ ,
X /
Kết quả: Error: name 'day' is not defined phần tử. đây chỉ là cách lách luật thôi, chứ một tuple đã được khai báo thì chúng ta chỉ được gọi và không được sửa đổi hay thêm mới bất cứ một cái gì cả. Nhưng chúng ta có thể tạo ra được một tuple mới từ các tuple đã có bằng biểu thức + hai tuple. VÍ DỤ: Ghép 2 tuple dayl và day2 thành tuple day. T r a n g 55 | 88
Lập trình Python cơ bản | Dương Thành Long
dayl = ('monday', day2 = ( ' t h u r s d a y ' ,
'tuesday', 'friday',
’We dne s da y ’ ) 'Saturday'
,
'sunday')
day = d a y l + day2
print(day)
Kêt quả: ('monday', 'tuesday', 'Wednesday', 'thursday', 'friday', 'sa^urda;', 'sunday') 4. Tuple lồng. gi Cũng giống như list, chúng ta cũng có thể khai báo các tuple lồng nhau. ] VÍ DỤ: dayl = ('monday', day2 = ( ' t h u r s d a y ' ,
'tuesday', 'friday',
' We d n e s d a y ' ) 'Saturday'
,
'sunday',
dayl)
day = d a y l + day2 print(day2) Kêtquả: ('thursday', friday', 'Saturday', 'Sunday', ('monday', 'tuesday', 'Wednesday')) p r i n t ( d a y 2 [ 4 ] [0]) Kêt quả: monday Và chúng ta có thể lồr g bao nhiêu cấp cũng được. Và lồng bất cứ một kiểu dữ liệu nào cũng được.
T r a n g 56 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 13: D ic tio n a r y ( T ừ đ iể n , b ả n g h i) tr o n g P y th o n 1. D ictionary là gì? Kiểu dữ liệu dictionary trong Python là một kiểu dữ liệu lưu trữ các giá trị chứa khóa và giá trị , nhìn một cách tổng quát thì nó giống với Bản ghi tron Pascal. Và đối với kiểu dữ liệu này thì các giá trị bên trong nó không được sắp xếp theo một trật tự nhất định. Để khai báo một dictionary chúng ta sử dụng cặp dấu {} theo cú pháp sau: {keyl: v a l u e l ,
k ey 2 : v a l u e 2 , . . . ,
keyN: v a l ue N}
T rong đó: keyl: valuel, key2: value2,..., keyN: valueN là các key và giá trị của kiểu dữ liệu dictionary. Và tên của key thì các bạn phải tuân thủ theo một số quy tắc sau: Các phần tử đều phải có key. Và Key chỉ có thể là số hoặc chuỗi. Key phải là duy nhất, nếu không nó sẽ nhận giá trị c ủa phần tử có key được xuất hiện cuối cùng. Key khi đã được khai báo thì không thể đổi được tên. Key có phân biệt hoa thường. VÍ DỤ: Khai báo một dictionary I ó tên là person. person = { ’ name’ : ’Thài ’a g e ’ : 32, ’m a l e ’ : Tru r
„ ềV
, >
. married’
2. T ruy c ập đ tn các ph ần tử trong dictionary. Ở phần trên chúng ta thấy các phần tử trong dictionary được săp xếp không theo một thứ tự nào cả, nên cũng chính vì điều đó mà chúng ta không thể nào sử dụng được cú pháp như đối với string và list mà chúng ta sẽ dựa vào các khóa của nó để truy xuất. - Để truy cập đến các phần tử trong dictionary sử dụng cú pháp sau: dicName[key] T r a n g 57 | 88
Lập trình Python cơ bản | Dương Thành Long
T rong đó: dicName là tên của của dictionary. key là tên của khóa chúng ta muốn lấy ra trong dictionary. VÍ DỤ: Lấy ra name và status của dictionary person trên. person = { ’ name’ : ’Thành Long’ , ’a g e ’ : 32, ’m a l e ’ : Tr u e , ’ s t a t u s ’ : ’m a r r i e d ’ } p e r s o n [ ’ name’ ] # Thành Long p e r s o n [ ’s t a t u s ’ ] # married 3. Thay đổi giá trị của dictionary. Để thay đổi giá trị của phần tử trong dic list là truy cập đến phần tử cần truy cập và -I
ta cũng là tương tự như đối với đổi giá trị của nó.
VÍ DỤ: Đổi status thành single. person = { 'name': 'Thành Long', 'age': 32, 'male': True,
CT
'status': 'married' } pers on['stJ;us'] = ' alone ' print(person) #{name': 'Thành Long', 'age': 32, 'male': True, 'status': 'alone'} óa phần tử trong diction. Để xóa một phần tử trong dictionary thì chúng ta sử dụng hàm del và chọn phần tử cần xóa. VÍ DỤ: T r a n g 58 | 88
Lập trình Python cơ bản | Dương Thành Long
person = { ’ name’ : ’Thành Long’ , ’a g e ’ : 32, ’m a l e ’ : Tr u e , ’ s t a t u s ’ : ’m a r r i e d ’ } d e l p e r s o n [ ’s t a t u s ’ ] print(person) Kết quả: {'name': 'Thành Long', 'age': 22, 'male': True}
o
,< r
oi.ary t] Và nếu như muốn xóa tất cả các phần tử bên trong dictionary thì chúng ta sử dụng dictName.cLear(); Trong đó: dictName là dictionary mà chúng ta muốn xóa hết phần tử. VÍ DỤ: person = { ’ name’ : ’Thành Long’ , ’a g e ’ : 32, ’m a l e ’ : Tr u e , ’ s t a t u s ’ : ’ma r r i e d ’ } person.clear() priit(person) Kết quả: {} à nếu muốn xóa hẳn dictionary thì chúng ta dùng hàm del để xóa. Í DỤ: person = { ’ name’ : ’Ti n h ọ c ’ , ’a g e ’ : 22, T r a n g 59 | 88
Lập trình Python cơ bản | Dương Thành Long
’m a l e ’ : Tr u e , ’s t a t u s ’ : ’a l o n e ’ } d el person print(person)
ờ x
Kết quả: error: name 'person' is not defined 5. D ictionary lồng nhau.
Cũng giống như kiểu dữ liệu list, tuple thì trong dicrtionary chúng úng tta cũng có thể lồng bất kỳ kiểu dữ liệu nào bạn thích vào trong nó. VÍ DỤ: Lồng một dictionary vào trong dictionaryy và đồn đồng thời truy vấn luôn đến dictionary con. person = { ’ name’ : ’Thành Long’ , ’o p t i o n ’ : {
ổ
’a g e ’ : 32, ’m a l e ’ : T r u e , ’ s t a t u s ’ : ’M a r r i e d ’
SO
print(pe
t i o n ’ ] [ ’a g e ’ ] )
Kết qu
T r a n g 60 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 14: Đ ọ c g h i file tr o n g P y th o n
File là một thứ rất cần thiết trong các dự án, ví dụ như chúng ta cần phải ghi log ra một file để sau này có thể kiểm soát được.... Và ngôn ngữ lập trình nào cũng hỗ trợ chúng ta làm việc với file. 1. M ở file. Để mở file trong Python chúng ta sử dụng hàm open với cú pháp như s “
o p e n ( f i l e P a t h , mode, b u f f e r ) T rong đó: fle P a th là đường dẫn đến địa chỉ của file.
mode là thông số thiết lập chế độ chúng ta mở file được cấp r hững quyền gì? Mặc định mode sẽ bằng r (xem các mode ở dưới). buffer là thông số đệm cho file mặc định thì nó sẽ là 0. Các chế độ mode. — M ode Chú thích r
S N -/
Chế độ chỉ được phép đọc.
rb
Chế độ chỉ được phép đọc nhưng cho định dạng nhị phân.
r+
Chế độ nà y cho phép đọc và ghi file, con trỏ nó sẽ nằm ở đầu file. Ch ế độ này cho phép đọc và ghi file ở dạng nhị phân, con trỏ sẽ nằm ở đầu file. ế độ ghi file, nếu như file không tồn tại thì nó sẽ tạo mới file và ghi nội dung, còn nếu như file đã tồn tại nó sẽ ghi đè nội dung lên file cũ. Tương tự chế độ w nhưng đối với nhị phân. Mở file trong chế độ đọc và ghi. còn lại như w.
wb+ Giống chế độ w+ nhưng đối với nhị phân
T r a n g 61 | 88
Lập trình Python cơ bản | Dương Thành Long
a
Mở file trong chế độ ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung, và nếu như file chưa tồn tại thì nósẽ tạo một file mới và ghi nội dung vào đó.
ab
Tương tự a nhưng đối với nhị phân.
a+
r a; „ X ■' Mở file trong chế& độA đọc 1và ghi; rtiếp nội dung, còn lại; cơ chế& giống chế& độ a.
ab+
Tương tự chế độ a+ nhưng đốivới nhị phân.
VÍ DỤ: Đọc file readme.md có cùng cấp với file index.py của mình. | - - r eadme. md |-- index.py
.
O
n
code f i l e i n d e x . p y # index.py o p e n ( ’ r e a d me . md ’ ) Lúc này hàm open sẽ trả về một đối tượng chứa các các phương thức để tác động đến file. 2. Đóng file. Để đóng một file đang được mở, thì chúng ta sử dụng phương thức close() với cú pháp như sau: fileO b ject. close() T rong đó: file O S e c t là đối tượng mà chúng ta thu được khi sử dụng hàm open(). Để đảm bả «quy chế đóng mở và giải phóng bộ nhớ cho chương trình thì phải luôn nhớ đóng file khi kết thúc phiên làm việc. 3. Đọc fi’e. Sau khi đã mở được file ra rồi, để đọc được file thì chúng ta sử dụng phương thức ic^d với cú pháp: fileO b ject. read(length); T rong đó: fileO bject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
T r a n g 62 | 88
Lập trình Python cơ bản | Dương Thành Long
length là dung lượng của dữ liệu mà chúng ta muốn đọc, nếu để trống tham số này thì nó sẽ đọc hết file hoặc nếu file lớn quá thì nó sẽ đọc đến khi giới hạn của bộ nhớ cho phép. VÍ DỤ: Đọc và xuất ra dữ liệu đọc được trong file readme ở trên. # mo f i l e f i l e = o p e n ( ’ r e a d me . md ’ ) # doc f i l e data = f i l e . r e a d ( ) ; # dong f i l e file.close() # i n du l i e u doc duoc print(data) 4. Ghi file. Để ghi được file thì chúng ta phải chắc chắn l à. đang mở file ở các chế độ cho phép ghi. Và sử dụng phương thức write với cú pháp sau: fileObject.write(data) Trong đó: fileO bject là đối tượng mà chúng ta thu được khi sử dụng hàm open(). data là dữ liệu mà chúng ta muố i ghi vào trong file. VÍ DỤ: Ghi dữ liệu v ào file readme.md # mo' f i l e o c he do g h i f i l e = o p e n ( ’ r e a d me . md ’ , ’w’ ) # ghi f i l ° f i l e . w r ; t e ( ’Thanh Long - E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n ’ ) #
dong f i l e
^file.close() : thuộc tính trong file. Nếu như cần biết thêm các thông số của file hiện tại thì bạn có thể tham khảo thêm các thuộc tính trong object file mà Python đã cung cấp sẵn cho chúng ta. Các thuộc tính như sau: Trong các trường hợp dưới đây: giả sử file là kết quả thu được từ hàm open(). T r a n g 63 | 88
Lập trình Python cơ bản | Dương Thành Long
Thuộc tính
Chú thích
file.name Trả về tên của file đang được mở. file.modeTrả về chế độ mode của file đang được mở. d
Trả về true nếu file đã được đóng, và false nếu fil ỉc ch ưa đóng. V ID ........ ................................................... VI DỤ: In ra thông sô của file readme.md ở trên. lllCtvlUồCU
4y
,vC >
f i l e = o p e n ( ’ r e a d m e . m d , , ’w’ ) print( file.name ) # readme print( file.mode ) # w print( file.closed
)
# False file.close()
T r a n g 64 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 15: C á c h à m x ử lý c h u ỗ i tr o n g P y th o n
1. Capitalize(). Hàm này có tác dụng in hoa chữ cái đầu tiên của chuỗi. VÍ DV: string = "elearning.c3vietduc.daklak.edu.vn" ..
..
p r i n t ( s t r i n g . c a p i t a l i z e ( ) ); # Kết quả:
E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . vn
2. Center(). Hàm này có tác dụng trả về chuỗi được hiển thị ở giữa m >t chi ỗi. Cú Pháp: string.center(len,
char)
T rong đó: string là chuỗi các bạn cần chuyển đổi. len là số lượng ký tự của chuỗi mới. char là ký tự sẽ hiển thị ở 2 bên c. ìuỗi cũ. Mặc định nó sẽ là khoảng trắng. VÍ DỤ: strin g = "Elearning.c3vietduc.daklak.edu.vn" print(string.cent er(20)); # Kết quả:
Elearning.c3vietduc.daklak.edu.vn
print(st!ing.ctnter(20,
’* ’));
# Kết q j ả : * * ' E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n * * * * Chú ý: N ếu len nhỏ hơn độ dài chuỗi cần xử lý thì, hàm này sẽ trả về chuỗi ban đầu. 3. Count*). Hàm này có tác dụng đếm xem trong chuỗi có bao nhiêu ký tự cần tìm. Cú Pháp: string.count(sub,
start,
end)
T rong đó: sub là chuỗi các bạn cần tìm kiếm và đếm. T r a n g 65 | 88
Lập trình Python cơ bản | Dương Thành Long
start là index bắt của chuỗi cần tìm. Mặc định thì start = 0. end là index kết thúc của chuỗi cần tìm. Mặc định thì end = len() của chuỗi. VÍ DỤ: strin g = "Elearning.c3vietduc.daklak.edu.vn" p r i n t ( s t r i n g . c o u n t ( ’i ’ ) ) ; # Kết quả: 7 print(string.count('i',
8));
# Kết quả: 6 4. encode(). Hàm này có tác dụng mã hóa một chuỗi. Cú pháp: s t r i n g . e n c o d e ( t y p e , mode) T rong đó: type là kiểu encode của string. Mặc định sẽ là mode là chế độ báo lỗi nếu có khi encode. Python hỗ trợ 6 dạng mode như sau: strict - Chế độ nghiêm ngặt, nó sẽ hiển thị lỗi dưới UnicodeDecodeError exception. Đây là chế độ mặc định. ignore - bỏ qua tất cả các lỗi nếu có. replace - nó sẽ thay thế lỗi bằng dấu ?. xmlcharrefreplace - chèn tham chiếu XML. backslash'eplace - Chèn chuỗi \uNNNN. namereplace - Chèn chuỗi \N {...}. VÍ DỤ: string - "Elearning.c3vietduc.daklak.edu.vn" ..
,
..
p r i n t ( s t r i n g . e n c o d e ( ) ); # Kết quả:
b , Elearning.c3vietduc.daklak.edu.vn'
5. d ecode(). Hàm này có tác dụng giải mã chuỗi trong Python. Cú Pháp: T r a n g 66 | 88
Lập trình Python cơ bản | Dương Thành Long
s t r i n g . d e c o d e ( t y p e , mode) v ề phần type và mode thì hoàn toàn giống ở encode nhé mọi người! VÍ DỤ: string = b'Elearning.c3vietduc.daklak.edu.vn' p r i n t ( s t r i n g . d e c o d e ( ) ); # Kết quả:
E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . vn
6. endswith().
.v O
N
Hàm này có tác dụng kiểm tra xem chuỗi hoặc khoảng chuỗi có được kết thúc bằng ký tự nào đó hay không. Nó sẽ trả về True nếu đúng và False rếu Sai. Cú pháp: string.endswith(str,
start,
end)
T rong đó: str là chuỗi các bạn cần xác thực xem có phải chuỗi kết thúc không. start là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0. end là index kết thúc chuỗi cần so sánh. Mặc định thì end = len(). VÍ DỤ: string = 'Elearning.c3vietduc.daklak.edu.vn' print(string.endswith('m')); # Kết quả: Tr ue print(string.endswith('m',
3, 1 0 ) ) ;
# Kết quả: 7. expandtabs(). Hàm này có tác dụng tìm kiếm thay thế \t bằng các ký tự khoảng trắng. Cú Pháp: string.expandtabs(len) T rong đó: len là số lượng khoảng trắng mà chúng ta muốn thay thế cho một \t. Mặc định thì len = 8. VÍ DỤ: s t r i n g = 'E learn in g .c3 v ie td u c.d a k lak .e d u .v n \th o c lap t r i n h ' T r a n g 67 | 88
Lập trình Python cơ bản | Dương Thành Long
p r i n t ( s t r i n g . e x p a n d t a b s ( ) ); # Kết quả: trinh
Elearning.c3vietduc.daklak.edu.vn
hoc l a p
8. find(). Hàm này có tác dụng tìm kiếm một chuỗi trong một chuỗi hoặc khoảng chuỗi. Nó sẽ trả về là vị trí bắt đầu của chuỗi tìm được trong chuỗi nếu tìm thấy và nếu khôi - ■' " thấy nó sẽ trả về -1. Cú pháp: string.find(str,
start,
end)
T rong đó: str là chuỗi các bạn cần xác thực xem có phải chuỗi kết th úc ki ông. start là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0 . end là index kết thúc chuỗi cần so sánh. Mặc định thi end = len(). VÍ DỤ: string = 'Elearning.c3vietduc.dakiak.edu.vn’ print(string.find('di')); # Kết quả:
3
9. index(). Hàm này tương tự như hàm find() chỉ khác duy nhất là nếu như không tìm thấy thì hàm này sẽ gọi except' VÍ DỤ: string = 'Eiearning.c3vietduc.daklak.edu.vn' p r in t( s tr in g .in d e x ( 'v u th a n h ta i')); # Kết quả: V a l u e E r r o r :
s u b s t r i n g n o t f ound
10. isalnu m ().
o
Hàm này có tác dụng kiểm tra xem một chuỗi có phải là chứa duy nhất các ký tự chữ ___chuỗi hoặc chuỗihay haykhông? không?Nó Nósẽsẽtrả trảvề vềTrue Truenếu nếuchuỗi chuỗichỉ chỉchứa chứacác cácký kýtựtựchữ chữhoặc hoặcsố. số. Và ngược lại nó sẽ trả về False nếu chuỗi chứa ký tự khác chuỗi và số. VÍ DỤ: string = 'toidicode' print(string.isalnum()); T r a n g 68 | 88
Lập trình Python cơ bản | Dương Thành Long
# Kết quả: Tr ue string = 'Elearning.c3vietduc.daklak.edu.vn' print(string.isalnum()); # Kết quả:
False
11. isalpha(). Hàm này có tác dụng kiểm tra xem một chuỗi có phải là chứa duy nhất các ký tự chữ hay không? Nó sẽ trả về True nếu chuỗi này chỉ chứa duy các ký tự ch ữ trong bảng chữ cái, và sẽ trả về False nếu nó chứa số hoặc ký tự đặc biệt khác. VÍ DỤ: string = 'toidicode96' p r i n t ( s t r i n g . i s a l p h a ( ) ); # Kết quả:
False
strin g = 'toidicodecom' p r i n t ( s t r i n g . i s a l p h a ( ) ); # Kết quả: Tr ue 12. isdigit(). Hàm này có tác dụng kiểm tra xe. m một chuỗi có phải là chứa duy nhất các chữ số hay không? Nó sẽ trả về True nếu đúng và False nếu sai. VÍ DỤ: strin g = 'toidiccdeí p r i n t ( s t r i n g . i s d i g i t ( ) ); # Kết quả:
False
s t r i n g = '1 2 0 5 1 9 9 6 ' p r i n t ( s t r i n g . i s d i g i t ( ) ); # Kết quả: Tr ue 13. isio wer(). Hàm này có tác dụng kiểm tra xem một chuỗi có phải là in thường hay không? Nó sẽ trả về True nếu đúng và False nếu sai. VÍ DỤ: string = 'Elearning.c3vietduc.daklak.edu.vn' T r a n g 69 | 88
Lập trình Python cơ bản | Dương Thành Long
p r i n t ( s t r i n g . i s l o w e r ( ) ); # Kết quả: Tr ue s t r i n g = '1 2 0 5 1 9 9 6 ' p r i n t ( s t r i n g . i s l o w e r ( ) ); # Kết quả:
False
strin g = '9Elearning.c3vietduc.daklak.edu.vn6' p r i n t ( s t r i n g . i s l o w e r ( ) ); # Kết quả: Tr ue strin g = '9Elearning.c3vietduc.daklak.edu.vn p r i n t ( s t r i n g . i s l o w e r ( ) ); # Kết quả:
False
^
0'
ơ
14. isupper(). ........ — Hàm này có tác dụng kiểm tra xem một chuỗi có phải là in Hoa hay không? Nó sẽ trả về True nếu đúng và False nếu sai. s t r i n g = ' ELEARNING.C3VIETDUC.DAKLAK.EDU.VN' print(string.isupper() # Kết quả: Tr ue s t r i n g = '1 2 0 5 1 9 9 0 ' p r i n t ( s t r i n g .i supper()); # Kết quả:
False
s t r i n g = ' 9 ELeARNING.C3VIETDUC.DAKLAK.EDU.VN6' p r i n t ' s hr i n g . i s u p p e r ( ) ) ; # Kết quả: Tr ue st r in g = '9Elearning.c3vietduc.daklak.edu.vn6' n t ( s t r i n g . i s u p p e r ( ) );
<3>#
Kết quả:
False
15. isnum eric() T r a n g 70 | 88
Lập trình Python cơ bản | Dương Thành Long
Hàm này có tác dụng kiểm tra xem một chuỗi có phải chỉ chứa duy nhất các ký tự số hay không? Nó sẽ trả về True nếu đúng và False nếu sai. VÍ DỤ: s t r i n g = ’ ELEARNING.C3VIETDUC.DAKLAK.EDU.VN’ p r i n t ( s t r i n g . i s n u m e r i c ( ) ); # Kết quả:
False
c> ^
s t r i n g = '1 2 0 5 1 9 9 6 ' p r i n t ( s t r i n g . i s n u m e r i c ( ) ); # Kết quả: Tr ue
&
s t r i n g = ' 9ELEARNING.C3VIETDUC.DAKLAK.EDU.VN6' K. EDU. p r i n t ( s t r i n g . i s n u m e r i c ( ) ); # Kết quả:
False
s t r i n g = ’9 E l e a r n i n g . c 3 v i e t d u c . d a k l a k . e d u . v n 6 ’ p r i n t ( s t r i n g . i s n u m e r i c i (( )) )) ; # Kết quả:
False
16. isspace(). Hàm này có tác dụn g kiểm tra xem một chuỗi có phải chỉ chứa duy nhất các ký tự khoảng trắng không? Nó sẽ trả về True nếu đúng và False nếu sai. VÍ DỤ gg = ? ......................................................................... s t r i n >g g = ’ ’ print (string.isspace()); t quả: Tr ue
s t r i n g = ’Ti n h o c ’ print
(string.isspace());
# Kết quả:
False T r a n g 71 | 88
Lập trình Python cơ bản | Dương Thành Long
17. istitle(). Hàm này có tác dụng kiểm tra xem một chuỗi có phải là title hay không, chuỗi title là chuỗi có các chữ cái đầu đều được in hoa. Nó sẽ trả về True nếu đúng và ngược lại False nếu sai. VÍ DỤ: s t r i n g = ' T i n hoc' print(string.istitle()) # Kết quả:
C>^
False
s t r i n g = ' T i n hoc' print(string.istitle()) # Kết quả: Tr ue
&
18. join(). Hàm này có tác dụng join squence bởi string. Cú pháp: string.join(squence) T rong đó: squence là string, list,.. mà bạn cần join lại với nhau bởi chuỗi string. VÍ DỤ: string_one = ’ ’ s t r i n g _ t w o = ’TAI ’ print(string_one.join(string_two)) # Kết q|uả: uả: T A I
rO
string_one = ' - ' string_two = [ ' T ' , ' D ' , ' C ' , ] #Tiit(string_one.join(string_two))
o19. len(). l
quả: T-D-C
Hàm này có tác dụng trả về độ dài của chuỗi. VÍ DỤ: I r a n g 72 | 88
Lập trình Python cơ bản | Dương Thành Long
s t r i n g = "Ti n hoc
print(len(string)) # Kết quả: 12 20. ljust(). Hàm này có tác dụng trả về một chuỗi với độ dài length được xác định, nếu chuỗi được chọn nhỏ hơn width thì nó sẽ sử dụng char để bù chỗ thiếu đó về phía bên phải của chuỗi. string.ljust(length,
char)
T rong đó: length là độ dài của chuỗi mới cần in ra. char là ký tự sẽ bù vào chuỗi mới nếu chuỗi cũ không đủ length. Mặc định thì char = khoảng trắng. VÍ DỤ: s t r i n g = "Ti n hoc"
print(string.ljust(17,
"-"))
# Kết quả: Ti n h o c -------21. rjust(). Tương tự hàm ljust() nhưng chỉ có điều là nó sẽ bù về phía bên trái của chuỗi. VÍ DỤ: s t r i n g = "Ti n hoc" p r i. n t ( s_ Ttt rrii.nngg..rrjju.u;s t ( 1 7 , . A ' .
5
# Kết quả:
"-"))
--------Ti n hoc
22 . low er(). Hàm này có tác dụng chuyển đổi chuỗi về dạng in thường. VÍ DỤ: s t r i n g = "Ti n hoc"
T r a n g 73 | 88
Lập trình Python cơ bản | Dương Thành Long
print(string.lower()) # Kết quả: Ti n hoc 23. upper(). Hàm này có tác dụng chuyển đổi chuỗi sang dạng in hoa. VÍ DỤ: s t r i n g = "Ti n h o c ”
print(string.upper()) # Kết quả: TIN HOC 24. lstrip(). Hàm này có tác dụng loại bỏ đi các ký tự char ở phía đầu của chuỗi. Cú Pháp: string.lstrip(char) T rong đó: char là ký tự bạn muôn loại bỏ. Mặc định thì char sẽ bằng khoảng trắng (white space). VÍ DỤ: string = "
Ti n h o c ”
print(string.lst # Kết quả: Tin ho
g = ■ ---T in hoc”
priit(string.lstrip(,-,)) # Kết quả: Ti n hoc r trip(). Tương tự như lstrip(), chỉ khác là rstrip nó sẽ loại bỏ char ở phần cuôi của chuỗi. VÍ DỤ: s t r i n g = "Ti n hoc
■ T r a n g 74 | 88
Lập trình Python cơ bản | Dương Thành Long
print(string.rstrip()) # Kết quả: Ti n hoc
s t r i n g = "Ti n h o c ------"
print(string.rstrip('-')) # Kết quả: Ti n hoc 26. strip(). Hàm này là sự kết hợp của lstrip của chuỗi.
o và rstrip(). Nó sẽ lại bỏ cácc ký tự 'char ở cả hai đầu
VÍ DỤ: string = "
Ti n hoc
"
print(string.strip()) # Kết quả: Ti n hoc
s t r i n g = " ------Ti In h o c - - ' - ' p r i n t ( s t r i n g . ct r i p ( ' - 1)) # Kết quả: Ti n hoc 27. rfind(). Tương tự như hàm find(), nhưng hàm này nó sẽ trả về index của chuỗi cuối cùng tìm đượ c trong chuỗi. Cú pháp sử dụng tương tự hàm find(). VÍ d Ụ:
c
g ................. .... print(string.rfind('T ')) # Kết quả: 9 T r a n g 75 | 88
Lập trình Python cơ bản | Dương Thành Long
28. rindex(). Tương tự như hàm index(),nhưng hàm này nó sẽ trả về index của chuỗi cuối cùng tìm được trong chuỗi. Cú pháp sử dụng tương tự hàm index(). VÍ DỤ: s t r i n g = "Ti n h o c ”
p r i n t ( s t r i n g . r i n d e x ( ’T ’ )) # Kết quả: 9 29. replace(). Hàm này có tác dụng tìm kiếm và thay thế chuỗi tìm đượcc bằng chu chuỗi mới. Cú Pháp: string.replace(old,new,max) T rong đó: old là chuỗi mà bạn cần tìm kiếm trong string. new là chuỗi mà bạn cần thay thế cho chuỗi old tìm được. max là số lượng từ có thể thay thế tối VÍ DỤ: s t r i n g = "Chao *! "
print(string.replaCe('*',
, T a i . )) 'Tai'))
ả: Chao T # Kết quả: Tai! a A a A" s t r i nng g - ""A
x> r i n t ( s trr i n g .\r e p l a cc ee (( ''AA'' ,
'Tai',
2) ) 2))
Kết quả: T a i T a i A ax(). Hàm này trả về chữ cái có độ sắp xếp cuối cùng theo bảng chữ cái alphabet nằm trong chuỗi. VÍ DỤ: I r a n g /0 | «8
Lập trình Python cơ bản | Dương Thành Long
s t r i n g = "Ti n hoc
print(max(string)) # Kết quả:
u
31. min(). Hàm này trả về chữ cái có độ sắp xếp đầu tiên theo bảng chữ cái alphabet nằm t "ong chuỗi. VÍ DỤ: s t r in g = "vuthanhtai" .................................................................. ^
p r i, n t ( m ,i n ( s t r i,n g )s)
rv
# Kết quả: a 32. title(). Hàm này có tác dụng chuyển đổi chuỗi sang kiểu title (xem ở trên). VÍ DỤ: s t r i n g = "Ti n hoc"
print(string.title()) # Kết quả: Ti n hoc 33. swapcase(). Hàm này có tác dụn g chuyển đổi chuỗi sang dạng nghịch đảo của nó (nghịch đảo ở đây là hoa - thường). VÍ D s t r i n g = " Ti n hoc"
print(string.swapcase()) # Kết quả: TIN HOC
s t r i n g = "Ti n hoc" T r a n g 77 | 88
Lập trình Python cơ bản | Dương Thành Long
print(string.swapcase()) # Kết quả: Ti n hoc 34. zfill(). Hàm này có tác dụng như hàm ljust() , nhưng nó sẽ chỉ thêm được các ký tự ze 0) và trước chuỗi thôi. VÍ DỤ: s t r i n g = "Ti n hoc"
print(string.zfill(17)) # Kết quả: 00000T in hoc
35. isdecimal(). Hàm này có tác dụng gần n h ư hàm isdigit().| tra chỉ chứa các số thập phân, và ngược lại....
' sẽ trả về True nếu chuỗi cần kiểm
VÍ DỤ: s t r i n g = "Ti n hoc 96" print(string.isdecimal()) # Kết quả:
False
s t r i n g = "12051996" print(string.isdecimal()) # Kết q uả: T r ' 36. split(). Hàn ■này có tác dụng tác chuỗi thành mảng bởi các char. Cú Pháp: string.split(char,
max)
T rong đó: char là ký tự các bạn tìm và tách chuỗi bởi nó. Mặc định thì char = khoảng trắng. max là số lượng chuỗi tách tối đa. VÍ DỤ: I r a n g 78 | 88
Lập trình Python cơ bản | Dương Thành Long
s t r i n g = "Ti n hoc" print(string.split() ) # Kết quả:
[ ’Vu ’ ,
'Thanh',
'Tai']
s t r i n g = "Ti n hoc" print(string.split('a')) # Kết quả:
[ ' Vu T h ' ,
' nh T ' ,
'i']
s t r i n g = "Ti n hoc" prlnT(sTrlng.spllT(' # Kết quả:
['Vu',
',
1))
' Thanh T a i ' ]
37. splitlines(). Hàm này sẽ tách chuỗi bởi các ký tự \n. Cú pháp: string.splitlines(max) T rong đó: max là số lần có thể cắt tối đa. VÍ DỤ: s t r i n g = " Vu \ n Th a n h \ n Ta i " print(string.splitlines() ) # Kết quả: 38. startsw ith().
['Vu', .
C
' Thani ' ,
'Tai']
F
......................................................................
Hàm này có tác dụng kiểm tra xem chuỗi hoặc khoảng chuỗi có được bắt đầu bằng ký tự nào đó ha • không. Nó sẽ trả về True nếu đúng và False nếu sai. Cú pháp: string.:tartsw ith(str,
start,
end)
Tro. lg đó: str là chuỗi các bạn cần xác thực xem có phải chuỗi bắt đầu không. strart là index bắt đầu chuỗi cần so sánh. Mặc định thì start = 0. end là index kết thúc chuỗi cần so sánh. Mặc định thì end = len(). VÍ DỤ: string = 'Elearning.c3vietduc.daklak.edu.vn' T r a n g 79 | 88
Lập trình Python cơ bản | Dương Thành Long
print(string.startsw ith('t')); # Kết quả: Tr ue p r i n t ( s t r i n g . s t a r t s w i t h ( ' m l , 3, 1 0 ) ) ; # Kết quả:
False
39. m aketrans(). Hàm này có tác dụng tạo ra các translation cho chuỗi. Dùng kết hợp với phương thức translate(). Cú Pháp: strin g .m a k etran s(in , out) T rong đó: in là chuỗi các ký tự các bạn cần tìm. out là chuỗi chứa các ký tự các bạn cần thay thế. 40. translate(). Hàm này có tác dụng thực thi việc dịch chuỗi. Dùng kết hợp với phương thức m akestrans(). VÍ DỤ: inputs = "abcdefghiiklmnopqrstuxyz"; o u t p u t s = "ABCDEFGHIJK'MNOPQRSTUXYZ"; s t r i n g = "Ti n ho<
t r a n s = s c r i n tJ . m a k e t r a n s ( i n p u t s ,
outputs)
print(s tring.translate(trans)) # Kết quả: TIN HOC
T r a n g 80 | 88
Lập trình Python cơ bản | Dương Thành Long
B à i 16: C á c h à m x ử lý lis t tr o n g P y th o n
1. list(). Hàm này có tác dụng chuyển đổi kiểu dữ liệu của một biến sang dạng list. Cú pháp: list(data) T rong đó, data là biến chứa tuple bạn cần chuyển đổi. VÍ DỤ: s t r i n g = "Ti n h o c ” print(list(string)) # Ket Qua: 'a', 'i']
[ ' V' ,
'u',
' B' ,
' C' )
tup = ( ' A' ,
'
á
....' h ' ,
' T' ,
'a',
'n',
'h',
'' T ' ,
print(list(tup)) # Ket Qua:
[ ' A' ,
' B' ,
' C' ]
2. len(). Hàm này trả về số lượng phần„ tửó có. trong list. Cú pháp: len(list) T rong đó, list là li st mà các bạn cần đếm. VÍ DỤ: 'A', 'B', 'C'] list = ['A'
t s ix
print(len(list)) #Kết quả: 3
Hàm này sẽ trả về phần tử có giá trị lớn nhất trong list. Nếu là chuỗi thì nó sẽ trả về phần tử có độ dài chuỗi dài nhất, nếu là số thì nó sẽ trả về phần tử có số lớn nhất. Cú pháp: max(list) I r a n g 01 | 00
Lập trình Python cơ bản | Dương Thành Long
T rong đó, list là list mà các bạn cần kiểm tra. VÍ DỤ: list = ['A', 'B', 'C'] print(max(list)) #Kết quả: C list = ['1', '3', '2'] print(max(list)) #Kết quả: 3 4. min(). Hàm này sẽ trả về phần tử có giá trị nhỏ nhất trong list. Nếu chuỗi thì nó sẽ trả về phần tử có độ dài chuỗi ngắn nhất, nếu là số thì nó sẽ trả về phần tử có số nhỏ nhất. Cú pháp:
S r
min(list) T rong đó, list là list mà các bạn cầnI kki'iể m
ta .
VÍ DỤ: list = ['A', 'B', 'C'] print(min(list)) #Kết quả: A
... . O ' list = ['1', ' print(max(list)) #Kết quả: 1 5. append(). Phương Phưo, thức này có tác dụng thêm phần vào cuối của một list. Cú p)háp: mylist.append(obj) T rong đó: mylist là list mà các bạn cần thêm phần tử. obj là phần tử mà bạn muốn thêm vào mylist. T r a n g 82 | 88
Lập trình Python cơ bản | Dương Thành Long
VÍ DỤ: list = ['A', 'B', 'C'] list.append('D') print(list) # Kết quả: ['A', 'B', 'C', 'D'] list.append(('E', 'F')) print(list) # Kết quả: ['A', 'B', 'C', 'D', ('E', 'F')] 6. extend(). Hàm này có tác dụng kế thừa lại các phần tử của lis 2 Và
êm vào trong lis tl.
Cú pháp: list1.extend(list2) T rong đó: listl là list mà bạn muốn kế thừa từ một list khác (ở đây là list2). list2 là list được sử dụng để cho 1;' t khác kết thừa (ở đây là listl). VÍ DỤ: list = ['A', 'B', 'C']
list.extend('D print(list) # Kết q u ả ['A', 'B', 'C', 'D'] list.extend(('E', 'F')) jrint(list) # Kết quả: ['A', 'B', 'C', 'D', 'E', 'F'] Lưu ý: Ở đây mình đã cố tình để ví dụ của phương thức append() và extend() là giống nhau để cho các bạn thấy được sự khác biệt giữa 2 phương thức này (xem kỹ nhé! không nhận ra được thì comment mình sẽ trả lời :D). T r a n g 83 | 88
Lập trình Python cơ bản | Dương Thành Long
7. count(). Phương thức này có tác dụng đếm số lần xuất hiện của một thành phần trong list! Cú pháp: mylist.count(val) T rong đó: mylist là list mà các bạn cần kiểm tra. val là phần tử mà bạn muốn tìm và đếm trong list mylist. VÍ DỤ: list = ['A', 'B', 'C'] print(list.count('A')) # Kết quả: 1 8. index(). Phương thức này có tác dụng trả về index xuất hiện đầu tiên của phần tử mà bạn muốn tìm và nếu như không tìm thấy thì nó sẽ gọi exception. Cú Pháp: mylist.index(val) T rong đó: mylist là list mà các bạn cần kiểm tra. val là phần tử mà bạn muốn tìm trong list mylist. VÍ DỤ:
IS=L list = ['A',
7
print(list.index('B')) # Kết quả: 1
■ print(list.index('D')) # Kết quả: ValueError: 'D' is not in list 9. insert(). T r a n g 84 | 88
Lập trình Python cơ bản | Dương Thành Long
Phương thức có tác dụng thêm phần tử vào vị trí index của list, và các phần tử sau index đó sẽ được đẩy về phía sau. Cú pháp: mylist.insert(index, val) T rong đó: mylist là list mà các bạn cần thêm. index là vị trí mà bạn muốn thêm phần tử val vào.
G
N
val là phần tử mà bạn muốn thêm vào trong list mylist. VÍ DỤ: list = ['A', 'B', 'C'] list.insert(0, 'Z') print(list) # Kết quả: ['Z', 'A', 'B', 'C']
list.insert(2, 'D') print(list) # Kết quả: ['Z', 'A', 'D', 'B', 'C ] 10. reverse(). Phương thức này có tác dụng đảo ngược vị trí của các phần tử trong list.
mylist.reverse í T rong đó , myi:st là list mà các bạn muốn đảo ngược. VÍ DỤ: list - ['A', 'B', 'C'] list.reverse() print(list) # Kết quả: ['C', 'B', 'A'] 11. remove(). T r a n g 85 | 88
Lập trình Python cơ bản | Dương Thành Long
Phương thức này có tác dụng xóa phần tử khỏi list. Cú Pháp: mylist.remove(val) T rong đó: mylist là list mà các bạn cần xóa phần tử. val là phần tử mà bạn muốn muốn xóa trong list mylist. VÍ DỤ: list = ['A', 'B', 'C'] list.remove('C') print(list)
&
# Kết quả: ['A', 'B'] 12. pop().
ự Phương thức này có tác dụng xóa bỏ phần ần tử trong li list dựa trên index của nó. Cú pháp: mylist.pop(index) T rong đó:
mylist là list mà các bạn cần xóa phần tử. index là index của ph ần tử mà bạn muốn muốn xóa trong list mylist. Mặc định thì index = mylist[-1] (phần tử cuối cùng trong list). VÍ DỤ: list = ['A', list.pop() print(list) # Kết quả: ['A', 'B', 'C', 'D']
o
list.pop(2) print(list) # Kết quả: ['A', 'B', 'D'] T r a n g 86 | 88
Lập trình Python cơ bản | Dương Thành Long
13. sort(). Phương thức này có tác dụng sắp xếp lại các phần tử trong list theo một thứ tự xác định. Cú pháp: mylist.sort(reverse, key) T rong đó: mylist là list mà các bạn muốn sắp xếp. reverse là một boolean cấu hình kiểu sắp xếp. Nếu reverse = True thì list sẽ được sắp xếp từ lớn đến bé, nếu reverse = False thì list sẽđược sắp xếp theo thứ tự từ bé đến lớn. Mặc định thì reverse = False. key là callback def để xử lý list hoặc là một lamda func to n (thường được dùng để sắp xếp các list tuple hoặc dictionary). list = i'A', 'C', 'B', 'E', 'D']
I
list.sort()
vN ^
print(list) # Kết quả: i'A', 'B', 'C', 'D', 'E'] list.sort(reverse=True) print(list) # Kết quả: i'E', 'D', 'C', 'B', 'A']
def custom_sort(elem): return elem[1] st = i(1, 2), (5, 7), (7, 100), (4, 4)] list.sort(key=custom_sort) print(list) # Kết quả: i(1, 2), (4, 4), (5, 7), (7, 100)] 14. clear(). T r a n g 87 | 88
Lập trình Python cơ bản | Dương Thành Long
Phương thức này có tác dụng xóa bỏ hết tất cả các phần tử trong list. Cú pháp: mylist.clear() T rong đó, mylist là list mà bạn muốn xóa bỏ hết phần tử. VÍ DỤ: , , , list = ['A', 'C', 'B', 'E', 'D']
^
list.clear() print(list) # Kết quả: []
T r a n g 88 | 88