Tài liệu lập trình Python cơ bản(Dành cho HS THPT) 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 rấ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.
Trang 1Mụ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 16
Bài 5: Kiểu dữ liệu số trong Python 19
Bài 6: Các toán tử cơ bản trong Python 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 Python 81
Trang 2Bài 1: Khái niệm lập trình và ngôn ngữ lập trình
1 Khái niệm lập trình
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ônngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác củathuật toán
2 Khái niệm và phân loại ngôn ngữ lập trình
Là ngôn ngữ dùng để diễn tả thuật toán sao cho máy tính hiểu vàthực hiện được Có 3 loại NNLT:
- 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ìnhdịch để chuyển đổi Lập trình bằng ngô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ậptrình mới lập trình được
3 Chương trình 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ềulần)
Trang 3Bước 3 : Thực hiện các câu lệnh vừa được chuyển đổi
(phù 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
4 Các thành phần của ngôn ngữ lập trình
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 trongbả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 Ngữ nghĩa: xác định ý nghĩa thao tác cần phải thực hiên , ứng
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ương trì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 chongườ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ể
Trang 4Bài 2: Tổng quan về Python
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 rấ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ứ 1trong top 10 ngôn ngữ phổ biến nhất
Và Python luôn được biết đến với các đặc điểm sau đây:
Trang 5Xử lý lỗi dựa theo ngoại lệ.
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ọiviệ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ịchbả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ênbản 3.8.5
Tiếp đó chúng ta chạy file vừa tải về và cài đặt theo các bước nhưsau:
Trang 6Tích chọn Run
Chọn Install Now
Trang 7Đợi quá trình cài đặt
Màn hình báo thành công
Trang 8Tiếp tục cài phần mềm IDE cho Python
Link phần mềm PyCharm: https://www.jetbrains.com/pycharm/
Bấm chọn Download
Trang 9Chọn phiên bản Community
Chạy các bước cài đặt như phần mềm Python phía trên
Màn hình làm việc chính phần mềm PyCharm
3 Chạy chương trình đầu tiên.
- Sau khi đã cài đặt thành công python Tại thư mục mặc định Bấmchuột phải chọn New\Python File
Trang 10Sau đó đặt tên là hello.py
Và viết đoạn code sau vào:
print ('Hello world!')
Trang 11- 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.
- Kết quả thu được(vùng màu đỏ):
Trang 13Bài 3: Nhập/xuất cơ bản, câu lệnh gán trong Python
1 Xuấ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 trình thực thi Sử dụng với cú pháp như sau:
print(content)
Trong đó: content 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ộtlần print thì chúng ta chỉ cần ngăn các giữa các nội dung bằng dấu,
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òngcho dòng tiếp theo
VÍ DỤ:
Print(‘Elearning.c3vietduc.daklak.edu.vn’)
Print(‘Author: Thanh Long’)
Khi chạy đoạn code trên thì chúng ta sẽ thu được kết quả:
Elearning.c3vietduc.daklak.edu.vn
Author: Tin hoc
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 nữa thì mọi người sử dụng từ khóa end thêm
vào param cuối cùng của hàm print với cú pháp như sau:
Trang 14print(content, end = "charset")
Trong đó là charset là ký tự mà chúng ta muốn thực hiện khi kếtthúc hàm print
print("Elearning.c3vietduc.daklak.edu.vn", end = " - ")print("Hoc lap trinh online")
Kết quả:
Elearning.c3vietduc.daklak.edu.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ápnhư sau:
input(something)
Trong đó: 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à ngườ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ùng nhập
tử nằm trong dạng này mà Python hỗ trợ
Trang 15= 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 csẽ có giá trị = 5)
đối tượng
c += a (tươngđương với c = c+ a)
-= Toán tử này trừ rồi gắn giá trị chođối tượng
c -= a (tươngđương với c = c -a)
đối tượng
c *= a (tươngđương với c = c *a)
/= Toán tử này chia 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 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ắngiá trị cho đối tượng c //= a (tươngđương với c =
c // a)
Trang 16Bài 4: Khai báo biến trong python
1 Khai báo biến trong Python.
Để khai báo biến trong Python chúng ta sử dụng cú pháp:
tenBien = giaTri
Trong đó:
tenBien 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ặc ký tự gạch dưới (_) và nó có phânbiệt hoa thường
giaTri là giá trị của biến muốn gán.
VÍ DỤ: Khai báo một biến name trong Python.
name, age, male = "Thành Long", 32 , True
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 phá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" #string(Xâu)
age = 32 #integer(Số nguyên)
point = 8.9 #float(Số thực)
Trang 17option = [1,2,3,4,5] #lists(Ma ng)
dictionary = {"name": "Thanh Long", "age": 32, "male":
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:
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 đổikiểu dữ liệu của một biến, thì Python hỗ trợ qua các hàm cơ bảnsau:
float(data) chuyển đổi sang kiểu số thực
int(data,base) 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)
Trang 18str(data) chuyển đổi sang dạng chuỗi.
complex(data) chuyển đổi sang kiểu phức hợp
tuple(data) chuyển đổi sang kiểu Tuple
dict(data) chuyển đổi sang kiểu Dictionary
hex(data) chuyển đổi sang hệ 16
oct(data) chuyển đổi sang hệ 8
chr(data) chuyển đổi sang dạng ký tự
Trang 19Bài 5: Kiểu dữ liệu số trong Python
1 Kiểu dữ liệu số(number) 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à khichúng ta gán giá trị mới cho biến đó thì 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 (python
2 thì bị hạn chế)
float 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:
del avariableName
//hoặc xóa nhiều biến
del avariableName1, avariableName2, , avariableName3
Trong đó: avariableName, avariableName1, là các biến mà bạn
Trang 203 Xử lý số học với module math 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
không cần phải import modules math
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
Trang 21chuyển đổi được kiểu số nguyên (integer) và số thực (float) trongkhi hàm abs() chuyển đổi được cả complex number.
Cú pháp:
math.fabs(number)
Trong đó: number là số mà các bạn muốn chuyển đổi.
3.3 ceil().
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ộtcách đơn giản thì hàm này có tác dụng làm tròn lên 1 số
Trang 23Lư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
Trang 24Lư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
Trang 25Hà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.
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
Trang 28Tươ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ố
Trang 29Bài 6: Các toán tử cơ bản trong Python
1 Toán tử số học - Arithmetic Operators.
Toán tử số học trong python được thể hiện dưới 7 dạng cơ bảnsau: (trong các ví dụ dưới đây thì ta coi a có giá trị là 5 và b có giátrị là 7)
Toán
- với nhauToán tử trừ các giá trị lại a - b = -2
nhau
= 0.7142857142857143
a // b = 0
Trang 30-0.1 => -1
2 Toán tử quan 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 đượcdùng trong các câu lệnh điều kiện
Trong Python thì nó cũng tồn tại 6 dạng toán tử quan hệ cơ bảnnhư 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)
Toán
==
So sánh giá trị của các đối số xem
có bằng nhau hay không Nếubằng nhau thì kết quả trả về sẽ
là True và ngược lại sẽ là False
a == b //False
!=
So sánh giá trị của các đối số xem
có khác nhau hay không Nếukhá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ố 2thì 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ớnhơn, nếu đối số 1 lớn hơn đối số 2thì kết quả sẽ trả về là True vàngược lại sẽ là False
a > b //False
hơn hoặc bằng, nếu đối số 1 nhỏhơn hoặc bằng đối số 2 thì kết quả
a <= b //True
Trang 31sẽ trả về là True và ngược lại sẽ làFalse.
>=
Dấu > đại diện cho phép toán lớnhơn hoặc bằng, nếu đối số 1 lớnhơn hoặc bằng đối số 2 thì kết quả
sẽ trả về là True và ngược lại sẽ làFalse
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ề
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
Trang 32sẽ trả về True và ngược lại/
a in b//Falsenot 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 inb //True
is Toán tử này sẽ trả về True nếu a== b và ngược lại a is b //False
Trang 33a != b và ngược lại //True
Trang 34Bài 7: Câu lệnh rẽ nhánh trong Python
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ệmnà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 True thì coi là đúng và trả
về 0, None hoặc False thì coi là sai.
2 Các câu lệnh rẽ nhánh.
Câu lệnh rẽ nhánh trong Python được thể hiện qua cậu lệnh if-elsevới các dạng sau:
Câu lệnh if-else
If-else dịch 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ạinếu điều kiện đó sai thì nó sẽ thực hiện code trong mệnh đề else
Cú pháp của câu lệnh if-else:
if condition:
Trang 35#code
else:
#code
Trong đó: 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
# Ket qua: Dung
Nếu như trong trường hợp chúng ta không cần thực thi điều gì khiđiều kiện đó không đúng thì chúng ta có thể bỏ mệnh đề else chogọn code
VÍ DỤ: Bỏ mệnh đề else ở VD trên đi.
a = 100
if (a == 100):
print('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 môn hay học lại
Trang 36print('Diem khong hop le')
# Ket qua: Qua mon
Trong đó: thì sau các mệnh đề if và elif sẽ tồn tại các điề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ên bằng mệnh đề
print('Diem khong hop le')
# Ket qua: Qua mon
Trang 37Bài 8: Vòng lặp trong Python
2 Vòng lặp for trong Python.
Vòng lặp for ở trong Python có tác dụng lặp các biến dữ liệu cótrong list, tuble hoặc string… Sử dụng cú pháp như sau:
for variable in data:
Trang 38Chú 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
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
Trang 39lặp while mới được thực thi, và ngược lại thì nó sẽ không thực thinếu condition trả về False.
VÍ DỤ: Viết một vòng lặp while in ra dãy số từ 1 đến 10.
Trang 40Thô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à:
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ựcthi 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