Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.
Trang 2Bài 1: Cơ bản về Python
1.1 Nhập môn:
Hiển thị ra màn hình dòng chữ "Hello, World!" luôn là một trong những bàitập cơ bản nhất khi bắt đầu làm quen với một ngôn ngữ lập trình Pythonđược thiết kế với mục đích đơn giản và ngắn gọn về mặt cú pháp nên đểhiển thị ra màn hình dòng chữ nào đó thì chúng ta chỉ cần sử dụnghàm print() Ví dụ để hiển thị ra màn hình dòng chữ "Hello World", chúng ta
Trang 31.2 Phép toán trong hàm Print
Để hiển thị ra màn hình tổng của 2 số trong ngôn ngữ lập trình Python rấtđơn giản, chúng ta chỉ cần dùng hàm print() với toán tử + Ví dụ về chươngtrình dùng để tính tổng của 10 và 16:
Ví dụ: chúng ta có thể tạo ra một chương trình dùng để cộng, trừ, nhân, chia
2 số nguyên giống như sau:
Trang 4Như bài trước chúng ta đã biết, để hiển thị ra màn hình một chuỗi ký
Trang 5Trong Python có 2 loại comment là comment trên một dòng và comment trênnhiều dòng.
Chúng ta cũng có thể đặt comment ngay sau câu lệnh:
# Dòng code bên dưới dùng để hiển thị Hello, World! ra màn hình
print("Hello, World!")
- Comment trên nhiều dòng
Comment trên nhiều dòng trong ngôn ngữ lập trình Python sẽ bắt đầu bằng 3dấu nháy đơn (''') hoặc 3 dấu nháy kép (""") và kết thúc cũng bằng 3 dấunháy đơn (''') hoặc 3 dấu nháy kép (""") Ví dụ:
'''
Dòng code bên dưới được dùng để
hiển thị ra màn hình dòng chữ Hello, World!
Trang 6Bài tập
Chúng ta hãy sử dụng comment (ghi chú) để chương trình hiển thị ra màn
hình dòng chữ Chao cac ban tan sinh vien với phần comment : Ban dang
hoc lap trinh Python tai Hiast
Trang 7Bài 2: Kiểu dữ liệu và biến
2.1 Lý thuyết
Bài này sẽ giúp chúng ta hiểu được biến là gì, cách khởi tạo biến và hiểuđược một số kiểu dữ liệu thông dụng trong Python
2.2 Biến
Khái niệm biến trong lập trình cũng giống khái niệm biến trong toán
học, biến được sử dụng để lưu trữ dữ liệu trong chương trình Dữ liệu được
lưu trữ trong một biến có thể thay đổi trong khi chạy chương trình
Trong Python, chúng ta không cần khai báo biến một cách tường minh trướckhi sử dụng cũng như khai báo kiểu dữ liệu của chúng Biến được tạo ra khi
ta bắt đầu gán giá trị cho nó Nhìn ví dụ dưới đây:
# Khai báo biến a và gán giá trị cho a = 5
Trong Python cũng như các ngôn ngữ lập trình khác, một biến luôn có kiểu
dữ liệu Một số kiểu dữ liệu cơ bản trong Python:
int: đây là kiểu dữ liệu được dùng để lưu trữ các số nguyên (1, 2, 3, 4, )
float: đây là kiểu dữ liệu dùng để lưu trữ các biến kiểu số thực (1.43, 5.34,
3.333, )
bool: đây là kiểu dữ liệu dùng để lưu trữ các giá trị luận lý (True hoặc False)str: đây là kiểu dữ liệu dùng để lưu trữ các xâu ký tự ("Viet Nam", "Hiast", )Ngoài ra trong Python còn một số kiểu dữ liệu khác như list, set, dict, tuple,complex nhưng chúng ta chưa cần quan tâm tới các kiêu dữ liệu này vìchúng ta sẽ được học trong các chương tiếp theo
Để kiểm tra kiểu dữ liệu của biến, chúng ta có thể sử dụng hàm type() Ví dụ:ten = "Hiast"
ngaysinh = 2
pi = 3.14
Trang 8- Một số lưu ý khi đặt tên biến
Tên biến có thể được bắt đầu bằng ký tự _ hoặc bất cứ chữ cái nào (in hoa
hoặc in thường)
Tên biến không được bắt đầu bằng chữ số Ví dụ tên biến 100invalid là
không hợp lệ
Tên biến không được bao gồm dấu cách (dấu khoảng trắng) trong đó.
Không sử dụng các từ khóa có sẵn trong Python như print, if, else để đặt
tên cho biến Ví dụ tên biến print là không hợp lệ, tênbiến print1, print_2, printHello là hợp lệ
Trang 92.4 Toán tử nối chuỗi
Ngoài kiểu dữ liệu số thì kiểu dữ liệu chuỗi ký tự (str) cũng có các toán tửnhư +, *, [], in, not in, Trong đó toán tử + dùng để nối chuỗi và toán
tử * dùng để lặp chuỗi Ví dụ chúng ta có thể nối 2 chuỗi ký tự giống nhưsau:
message = "Hello" + " " + "Hiast"
Kết quả khi chạy chương trình:
Hello Hello Hello
Như vậy chúng ta đã hiểu về cách sử dụng toán tử + để nối chuỗi và toán
tử * để lặp chuỗi Hãy sử dụng toán tử nối chuỗi để làm bài tập dưới
Bài tập
a= 'Hiast'
print("Hello "+ a)
2.5 Nối chuỗi và số
Chúng ta chỉ có thể nối 2 chuỗi với nhau chứ không thể nối một chuỗi với 1
số Ví dụ chương trình sau sẽ báo lỗi:
age = 19
print("Age: " + age)
Để nối được một chuỗi và một số chúng ta cần phải đưa được số này vềdạng chuỗi Trong ngôn ngữ lập trình Python chúng ta có thể dùnghàm str() để làm việc này Ví dụ:
Trang 11print("Dien tich: " + str(dai * rong))
print("Chu vi: " + str((dai + rong) * 2))
Trang 12Bài 3: Nhập xuất dữ liệu cơ bản trong Python
Và bấm phím Enter thì màn hình sẽ hiển thị ra:
Hello Kim Viet
Chúng ta cần lưu ý rằng khi nhập dữ liệu cho một biến từ bàn phím thì kiểu
dữ liệu của biến đó luôn là str (kể cả chúng ta có nhập giá trị số cho biến đó)
Với {P} là tên chúng ta vừa nhập từ bàn phím
Ví dụ nếu chúng ta nhập tên là Kim Viet thì màn hình sẽ hiển thị lên dòngchữ:
Hello Kim Viet
Hướng dẫn
Code mẫu:
name = input()
print("Hello " + name)
Trang 133.2 Chuyển kiểu dữ liệu từ str về int
Trong Python, dữ liệu nhập từ bàn phím luôn có kiểu là str (hàm input() trả vềkiểu str), mà biến kiểu str thì không thể tính toán được Do đó chúng ta cần
chuyển kiểu dữ liệu của biến tuoi về kiểu int, để làm việc này chúng ta cần
sử dụng hàm int() Ví dụ chương trình sau:
Có thể thấy chúng ta đã chuyển được chuỗi "23" về số 23
Tới đây chúng ta đã biết cách chuyển kiểu dữ liệu từ str về int, hãy quay lạiphần bài tập và làm thử
Bài tập
Chúng ta hãy viết chương trình nhập vào từ bàn phím tên, tuổi của mộtngười Sau đó hiển thị ra màn hình:
Trong 15 nam, tuoi cua {P1} se la {P2}
Với {P1} là tên của người đó, {P2} là tuổi của người đó sau 15 năm
print("Trong 15 năm, tuoi cua " + name + " se la "+ str(Tuoi + 15))
3.3 Toán tử lấy số dư
Để lấy phần dư của một phép chia chúng ta có thể sử dụng toán tử % Ví dụchương trình:
Trang 14print(5 % 3)
Sẽ hiển thị lên màn hình:
2
Do 2 là phần dư của phép chia 5/3
Đọc tới đây chúng ta đã biết cách sử dụng toán tử % để lấy phần dư củaphép chia, hãy quay lại phần bài tập và làm thử
Bài tập 1
Chúng ta hãy viết chương trình nhập vào từ bàn phím 2 số nguyên a và b.Sau đó hiển thị ra màn hình thông tin sau:
a % b = {P}
Với {P} là phần dư của phép chia a/b
Ví dụ nếu chúng ta nhập a = 7, b = 3 giống như bên dưới:
Trang 15{P5} là phần dư của phép chia a/b.
Ví dụ nếu chúng ta nhập a = 10, b = 5 giống như bên dưới:
Hoán đổi a = {P1}, b = {P2}
Với {P1} và {P2} lần lượt là giá trị của a và b sau khi đã hoán đổi
Ví dụ nếu chúng ta nhập a = 3, b = 4 như bên dưới:
Trang 16từ str về float cho biến lưu trữ bán kính đường tròn chúng ta có thể làm giốngnhư chương trình sau:
Trang 18Bài 4: Toán tử cơ bản trong Python
4.1 Các loại toán tử
Trong chương trước chúng ta đã được làm quen với các toán tử như toán
tử = +, -, *, /, %, Ở chương này chúng ta sẽ đi sâu hơn về các toán tửtrong Python
Python xây dựng 7 loại hình tính toán trên toán tử như sau:
Python Arithmetic Operator (toán tử số học)
Python Relational Operator (toán tử quan hệ)
Python Assignment Operator (toán tử gán)
Python Membership Operator (toán tử membership)
Python Identity Operator (toán tử identity)
Python Logical Operator (toán tử logic)
Python Bitwise Operator (toán tử thao tác bit)
Trong bài này chúng ta sẽ tìm hiểu về loại toán tử đầu tiên, đó là ArithmeticOperators
// Toán tử chia lấy phần nguyên của 2 giá trị. 7 // 3 = 2
10 // 6 = 1
%
Toán tử chia lấy phần dư của 2 giá trị 7 % 3 = 1
Trang 19Ví dụ nếu chúng ta nhập a = 10, h = 12 thì màn hình sẽ hiển thị ra:
Dien tich tam giac la 60
Trước khi làm bài này chúng ta hãy đọc phần lý thuyết để biết thêm về cáctoán tử trong Python
Trang 20Chúng ta hãy viết chương trình nhập từ bàn phím 2 số nguyên a và b Sau
đó hiển thị ra màn hình giá trị của phép toán a mũ b (ab)
Ví dụ nếu chúng ta nhập a = 2, b = 3 thì màn hình sẽ hiển thị ra:
Ví dụ nếu chúng ta nhập x = 10, y = 5 thì màn hình sẽ hiển thị ra:
x > y: True
Nếu chúng ta nhập x = 2, y = 8 thì màn hình sẽ hiển thị ra:
Trang 21> Toán thử lớn hơn - nếu số hạng bên trái lớn hơn
số hạng bên phải thì kết quả sẽ là True 3 > 5 (False)
< Toán tử nhỏ hơn - nếu số hạng bên trái nhỏ hơn
số hạng bên phải thì kết quả sẽ là True 3 < 5 (True)
== Toán tử bằng với - nếu hai số hạng có giá trị
bằng nhau thì kết quả sẽ là True 3 == 3 (True)
!= Toán tử khác bằng - nếu hai số hạng có giá trị
khác nhau thì kết quả sẽ là True 3 != 3 (False)
>= Toán tử lớn hơn hoặc bằng - nếu số hạng bêntrái lớn hơn hoặc bằng số hạng bên phải thì kết
Trang 22Ví dụ nếu chúng ta nhập x = 10, y = 5 thì màn hình sẽ hiển thị ra:
Loại toán
= Gán giá trị của vế phải cho vế trái x = 5
+= Tăng vế trái một phần bằng vế phải sau đó gán
giá trị cho vế trái
x += 5(x = x + 5)
Trang 23-= Giảm vế trái một phần bằng giá trị vế phải sau
đó gán kết quả cho vế trái
x -= 5(x = x - 5)
*= Nhân giá trị của vế trái với vế phải sau đó gán
kết quả cho vế trái
x *= 5(x = x * 5)
/= Chia giá trị của vế trái cho vế phải sau đó gán
kết quả cho vế trái
x /= 5(x = x / 5)
%= Chia giá trị của vế trái cho vế phải sau đó gán
phần dư cho vế trái (chia lấy dư)
x %= 5(x = x % 5)
(x = x // 5)
**= Lấy vế trái lũy thừa với bậc là giá trị vế phải
sau đó gán kết quả cho vế trái
x **= 5(x = x ** 5)
&= Thực hiện phép toán của toán tử AND cho 2 vế
sau đó gán cho vế trái
x &= 5(x = x & 5)
|= Thực hiện phép toán của toán tử OR cho 2 vế
sau đó gán cho vế trái
x |= 5(x = x | 5)
^= Thực hiện phép toán của toán tử XOR 2 vế sau
đó gán cho vế trái
x ^= 5(x = x ^ 5)
>>= Thực hiện phép toán dịch phải của vế phải sau
đó gán cho vế trái
x >>= 5(x = x >> 5)
Trang 24<<= Thực hiện phép toán dịch trái của vế phải sau
đó gán cho vế trái
x <<= 5(x = x << 5)
Gia tri sau khi += Operator is: {A}
Gia tri sau khi -= Operator is: {B}
Gia tri sau khi *= Operator is: {C}
Gia tri sau khi //= Operator is: {D}
Gia tri sau khi **= Operator is: {E}
Gia tri sau khi /= Operator is: {F}
Gia tri sau khi %= Operator is: {G}
Với A, B, C, D, E, F, G, H là các giá trị của Total sau khi sử dụng các toán tửtương ứng
Ví dụ nếu chúng ta nhập a = 7, Total = 21 thì màn hình sẽ hiển thị ra:
Gia tri sau khi +=: 28
Gia tri sau khi -=: 21
Trang 25Gia tri sau khi *=: 147
Gia tri sau khi //=: 21
Gia tri sau khi **=: 1801088541
Gia tri sau khi /=: 257298363.0
Gia tri sau khi %=: 0.0
Hướng dẫn
Code mẫu:
a = int(input())
Total = int(input())
Total += a # Using += Operator
print("Gia tri sau khi +=:", Total)
Total -= a # Using -= Operator
print("Gia tri sau khi -=:", Total)
Total *= a # Using *= Operator
print("Gia tri sau khi *=:", Total)
Total //= a # Using //= Operator
print("Gia tri sau khi //=:", Total)
Total **= a # Using **= Operator
print("Gia tri sau khi **=:", Total)
Total /= a # Using /= Operator
print("Gia tri sau khi /=:", Total)
Total %= a# Using %= Operator
print("Gia tri sau khi %=:", Total)
4.4 Toán tử membership
Để làm được bài này chúng ta cần biết về toán tử membership Toán tửmembership là toán tử dùng để kiểm tra xem một giá trị có nằm trong giá trịkhác hay không
in và not in là hai toán tử membership với cách sử dụng rất đơn giản Ví dụchúng ta có thể kiểm tra xem một xâu có nằm trong một xâu khác khônggiống như sau:
print("Truong" in "Truonghiast")
print("Py" not in "Python")
Kết quả khi chạy chương trình:
True
False
Chúng ta đã biết cách sử dụng toán tử membership Hãy làm thử bài tập bêndưới
Trang 26Bài tập
Viết chương trình nhập từ bàn phím xâu x và kiểm tra xem trong xâu x cóchứa ký tự 'H' hay không, nếu có thì hiển thị ra màn hình True, ngược lạihiển thị False
Ví dụ nếu chúng ta nhập x = "PYTHON" thì màn hình sẽ hiển thị ra:
về sự khác nhau giữa hai toán tử này ở các bài sau
Trong Python, is và is not chính là 2 toán tử định danh Ví dụ:
Ví dụ nếu chúng ta nhập a = 10, b = 10 thì màn hình sẽ hiển thị ra:
True
Nếu chúng ta nhập a = 5, b = 7 thì màn hình sẽ hiển thị ra:
Trang 27and Trả về True nếu hai điều kiện cùng đúng, ngược
or Trả về True nếu có ít nhất một điều kiện đúng,ngược lại nếu cả hai điều kiện đều sai thì trả về
False
a or b
not Toán tử phủ định, toán tử này trả về False nếuđiều kiện là True, ngược lại nếu điều kiện là
Trang 28print("Danh gia ket qua la ", (x > y) and (z < t))
Bài 5: Các câu lệnh lựa chọn
5.1 If - Else
Để làm được bài này chúng ta cần biết cách sử dụng đề else Mệnh đề else được dùng để kiểm tra một điều kiện có đúng hay không, nếu đúng thìkhối lệnh bên trong if sẽ được thực thi, ngược lại nếu điều kiện là sai thì khốilệnh bên trong else sẽ được thực thi:
if-if condition:
# Nếu condition đúng thì khối lệnh này sẽ được thực thi
else:
# Nếu condition sai thì khối lệnh này sẽ được thực thi
Lưu ý: khối lệnh trong if và else chính là các đoạn code được thụt lề vàotrong (ở các ngôn ngữ lập trình khác thì khối lệnh được xác định bằng cặpdấu {} nhưng đối với Python thì khối lệnh được xác định bằng việc thụt lề)
Ví dụ về chương trình sử dụng mệnh đề if-else để kiểm tra tính chẵn lẻ củamột số được nhập từ bàn phím:
n = int(input())
if n % 2 == 0:
Trang 29# Nếu n là số chẵn thì hiển thị ra màn hình n la so Chan
Toán tử 3 ngôi trong Python
Toán tử ba ngôi cũng được dùng để kiểm tra các điều kiện giống như mệnh
đề if-else nhưng nó đơn giản hơn ở chỗ có thể viết gọn thành một dòng.Toán tử 3 ngôi có thể thay thế cho mệnh đề if-else khi cần kiểm tra các điềukiện đơn giản
Ví dụ về chương trình so sánh giá trị 2 số sử dụng toán tử 3 ngôi:
# Chuong trinh so sanh gia tri 2 so su dung toan tu 3 ngoi
a, b = 10, 20
print ("A va B bang nhau" if a == b else "A lon hon B"
if a > b else "B lon hon A") Nếu sử dụng mệnh đề if-else để so sánh giá trị 2 số thì sẽ như sau:
a, b = 10, 20
if a != b:
if a > b:
print("a > b")else:
print("b < a")else:
Trang 30dòng chữ Meo tre mang, ngược lại nếu tuổi của con mèo lớn hơn hoặc bằng
5 tuổi thì hiển thị ra Meo qua gia.
Ví dụ nếu chúng ta nhập age = 3 thì màn hính sẽ hiển thị ra:
Meo tre mang
Nếu chúng ta nhập age = 5 thì màn hình sẽ hiển thị ra:
Meo qua gia
print("Meo qua gia")
Code mẫu sử dụng toán tử 3 ngôi:
Trang 31Đọc tới đây chúng ta đã biết cách rút gọn các mệnh đề if-else, hãy quay lạiphần bài tập và làm thử.
Bài tập 1
Cho số nguyên nhietdo chỉ nhiệt độ được nhập từ bàn phím, chúng ta hãy
viết chương trình in ra màn hình theo các yêu cầu như sau:
Nếu nhietdo >= 100, in ra dòng chữ Hay o nha va thu gian voi nhung bo phim nong bong trên màn hình.
Nếu nhietdo >= 92, in ra dòng chữ Hay o nha va doc sach trên màn hình Nếu nhietdo = 75, in ra dòng chữ Hay ra ngoai va vui choi giai tri trên màn
Nếu nhietdo = 93 thì hiển thị Hay o nha va doc sach
Nếu nhietdo = 75 thì hiển thị Hay ra ngoai va vui choi giai tri
Nếu nhietdo = -10 thì hiển thị Troi qua lanh nen trum men ngu
Nếu nhietdo = 20 thì hiển thị Den truong hoc thoi nao
Trang 325.3 Kiểm tra 1 số trong khoảng
Như ở phần trước chúng ta đã được học, toán tử and có thể được dùng đểkết hợp các điều kiện lại Ví dụ chúng ta có thể kiểm tra xem một số có nằmtrong đoạn [10, 20] hay không, viết như sau:
n = int(input())
if n >= 10 and n <= 20:
print("n nam trong khoang [10, 20]")
else:
print("n khong nam trong khoang [10, 20]")
Tới đây chúng ta đã biết cách sử dụng toán tử and để kết hợp với mệnh
đề if, hãy quay lại phần bài tập bên dưới và làm thử
Trang 33Bài tập
Viết chương trình Python tính giá trị trung bình (avg) của ba biến a, b, c nhập
từ bàn phím (a, b, c là ba số tự nhiên) với điều kiện như sau:
Nếu avg > a và avg > b thì hiển thị Gia tri trung binh lon hon a va b
Nếu avg > a và avg > c thì hiển thị Gia tri trung binh lon hon a va c
Nếu avg > b và avg > c thì hiển thị Gia tri trung binh lon hon b va c
Nếu avg chỉ lớn hơn a thì hiển thị Gia tri trung binh lon hon a
Nếu avg chỉ lớn hơn b thì hiển thị Gia tri trung binh lon hon b
Nếu avg chỉ lớn hơn c thì hiển thị Gia tri trung binh lon hon c
if avg > a and avg > b:
print("Gia tri trung binh lon hon a va b ")
elif avg > a and avg > c:
print("Gia tri trung binh lon hon a va c ")
elif avg > b and avg > c:
print("Gia tri trung binh lon hon b va c ")
Nếu age <= 0 thì hiển thị "Khong co thiet"
Nếu age == 1 thì hiển thị "Khoang 1 nam tuoi"
Trang 34Nếu age == 2 thì hiển thị "Khoang 2 nam tuoi"
Nếu age > 2 thì hiển thị "Khoang hon 5 tuoi”
Ví dụ nếu chúng ta nhập age = 3 thì hiển thị " Khoang hon 5 tuoi "
Nếu chúng ta nhập age = 1 thì hiển thị " Khoang 1 nam tuoi "
Nếu DTB = 0 thì hiển thị "ROT"
Nếu DTB <5 thì hiển thị "Yeu"
Nếu 5<=DT<7 thì hiển thị "Trung binh"
Nếu 7<=DT<8 thì hiển thị "Kha”
Nếu 8<=DT<10 thì hiển thị "Gioi”
Ví dụ nếu chúng ta nhập DTB = 4 thì hiển thị " Yeu "
Nếu chúng ta nhập DTB = 9 thì hiển thị " Gioi "