Nó thích hợp cho ứng dụng không yêu cầu hiệu suất tối ưu.Thường được sử dụng cho phát triển web, trí tuệ nhân tạo, khoa học dữ liệuvà đối tượng lập trình hướng mục tiêu.Quản lý bộ nhớ tự
Trang 1NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP HỒ CHÍ MINH
-BÁO CÁO: GIỚI THIỆU VÀ THỰC HÀNH
NGÔN NGỮ PYTHON MÔN: CƠ SỞ LẬP TRÌNH
LỚP: L07 Khóa học: CLC-K10 GVHD: PHÓ HẢI ĐĂNG
TP Hồ Chí Minh, tháng 11 năm 2023
Trang 2DS THÀNH VIÊN VÀ B NG PHÂN CÔNG Ả
hoàn thành(%)
1 Vũ Hoàng
Như
050610220437 Soạn phần giới thiệu
và code max, min
100
Trang 3M C L C Ụ Ụ
DS THÀNH VIÊN VÀ BẢNG PHÂN CÔNG 1
MỤC LỤC 2
I Giới thiệu về Python 4
1 Điểm mạnh của Python: 4
2 Điểm yếu của Python: 4
3 So sánh Python và C++ 5
II Bộ từ vựng của python 5
1 Bộ từ khóa trong python 6
2 Bộ ký hiệu trong Python 7
III Các cái ký hiệu đặc biệt 8
IV Kiểu dữ liệu cơ sở 10
1 Kiểu dữ liệu số (Numeric types) 10
2 Kiểu dữ liệu chuỗi (String): 10
3 Kiểu dữ liệu Boolean: 10
4 Danh sách (list): 10
5 Tuple trong Python: 10
6 Từ điển (dictionary): 10
7 Python sets: 10
V Kiểu dữ liệu mảng 10
1 List và mô-đun array trong Python 11
2 Làm thế nào để tạo mảng trong Python? 11
3 Làm sao để truy cập vào các phần tử của mảng? 12
4 Thay đổi, thêm phần tử trong mảng Python 12
5 Xóa phần tử của mảng trong Python 13
6 Độ phức tạp khi loại bỏ array trong Python 14
Kết quả: 15
7 Lặp các thành phần trong mảng 15
8 Các phương thức mảng trong Python 15
9 So sánh Lists và Arrays trong Python 16
Kết quả: 16
10 Khi nào thì sử dụng mảng? 16
Vậy các trường hợp dùng mảng được tạo từ mô đun mảng Python là gì? 16
VI Kiểu dữ liệu tập hợp 17
1 Khai báo tập hợp jp nó 17
2 Thay đổi tập hợp 17
2.1 Phương thức add() 17
Trang 42.2 Phương thức remove() 17
2.3 Phương thức discard() 18
2.4 Phương thức pop() 18
2.5 Phương thức clear() 18
2.6 Phương thức update() 18
3 Các phép toán trong tập hợp 19
3.1 Phép hợp (Union) 19
3.2 Phép trừ (Difference) 19
3.3 Hiệu đối xứng của hai tập hợp (Symmetric difference) 19
3.4 Phép giao (Intersection) 20
3.5 Thay đổi tập hợp dựa trên phép toán tập hợp 20
3.6 Một số các phép toán khác 21
4 “Đóng băng” tập hợp (Frozen Set) 21
5 Tập hợp sử dụng khi nào? 22
VII Chương trình con 22
1 Cấu trúc chương trình con trong Python 22
2 Các loại chương trình con trong Python 23
2.1 Tham số của chương trình con 23
2.2 Giá trị trả về của chương trình con 23
2.3 Cách gọi chương trình con 23
3 Cấu trúc hàm trong Python: 24
3.1 Khai báo hàm: 24
3.2 Hàm ẩn danh: 24
4 Thực hiện chương trình con: 24
4.1 Đối với hàm: 24
4.2 Đối với Module: 24
4.3 Đối với Package: 24
VIII Thực hành code Python 24
1 Thủ tục nhập từ người dùng 10 số nguyên dương, sai nhập lại 24
2 Tìm max, min trong dãy 25
3 Sắp xếp mảng tăng, giảm dần 25
4 Kiểm tra số nguyên tố, xuất ra dãy 26
5 Kiểm tra số fibonnaci, xuất ra dãy 26
6 Tính tổng số trong dãy, số nguyên tố và số fibonnaci 27
7 Nhập một phần tử, xuất ra vị trí trong dãy 27
8 Hàm chính 27
Trang 5I Gi i thi u vềề Python ớ ệ
Python là một ngôn ngữ lập trình đa năng, dễ học và đáng tin cậy với cú pháp đơn giản
Nó được sử dụng rộng rãi trong phát triển web, khoa học dữ liệu, trí tuệ nhân tạo và nhiều ứng dụng khác Python có một cộng đồng lớn và phong phú với nhiều thư viện và tài liệu hữuích, làm cho nó trở thành một trong những ngôn ngữ phát triển phổ biến nhất trên thế giới
Dễ học và đọc: Python có cú pháp đơn giản và rất giống với ngôn ngữ tự nhiên Điều này
làm cho nó dễ học và dễ đọc hơn so với nhiều ngôn ngữ lập trình khác
Đa năng: Python có nhiều thư viện và frameworks đa dạng cho nhiều mục đích khác
nhau, chẳng hạn như web development, scientific computing, machine learning, data analysis, và nhiều ứng dụng khác
Cộng đồng lớn: Python có một cộng đồng phát triển và hỗ trợ rộng lớn Điều này đồng
nghĩa với việc có rất nhiều tài liệu, thư viện bổ sung, và hỗ trợ trực tuyến dễ dàng tìm kiếm
Di động và đa nền tảng: Python có sẵn trên nhiều hệ điều hành khác nhau, và có thể chạy
trên nhiều loại thiết bị, từ máy tính cá nhân đến thiết bị di động
Tích hợp dễ dàng: Python có khả năng tích hợp tốt với các ngôn ngữ lập trình khác như
C, C++, và Java
Giải quyết vấn đề một cách nhanh chóng: Python cho phép phát triển phần mềm nhanh
chóng, giúp giảm thời gian và nguồn lực cần thiết để triển khai ứng dụng
: Python thường chậm hơn so với một số ngôn ngữ lập trình khác
Tốc độ thực thi chậm
như C++ hoặc Java Điều này có thể là vấn đề đối với các ứng dụng đòi hỏi hiệu suất cao
Ghi chú tốt hơn là đối tượng nhưng có thể gây hiểu nhầm: Python sử dụng ghi chú
(indentation) để đánh dấu khối mã, điều này có thể dẫn đến lỗi nếu không tuân thủ đúng cú pháp ghi chú
Không thích hợp cho các ứng dụng đòi hỏi tài nguyên thấp: Python không phải lúc nào
cũng là lựa chọn tốt cho các ứng dụng đòi hỏi tài nguyên hệ thống thấp như viết hệ điều hành hay viết driver
Giao diện người dùng đồ họa: Python không thường được sử dụng cho phát triển ứng
dụng giao diện người dùng đồ họa mức cao Điều này có nghĩa rằng việc phát triển ứng dụng giao diện có thể đòi hỏi sử dụng các thư viện và frameworks bên ngoài
Chưa có sự hỗ trợ tốt cho lập trình đa luồng (multithreading): Python có Global
Interpreter Lock (GIL), một khóa dùng để đảm bảo rằng chỉ có một luồng có thể thực hiện tạimột thời điểm trong một quy trình Python Điều này có thể làm giảm hiệu suất của các ứng dụng đa luồng
3 So sánh Python và C
Trang 6Python thường chậm hơn
C do được thực thi thông
qua trình thông dịch Nó
thích hợp cho ứng dụng
không yêu cầu hiệu suất
tối ưu.
Thường được sử dụng cho
phát triển web, trí tuệ
nhân tạo, khoa học dữ liệu
và đối tượng lập trình
hướng mục tiêu.
Quản lý bộ nhớ tự động
qua thu gom rác, giúp
tránh lỗi cơ bản về quản lý
C được biết đến với hiệu suất cao hơn do biên dịch trước và gần gũi với phần cứng.
Thường được sử dụng trong lập trình hệ thống, phát triển hạ cấp
và ứng dụng yêu cầu hiệu suất cao.
Lập trình viên phải tự quản lý bộ nhớ, có thể gây ra lỗi như rò rỉ bộ nhớ hoặc truy cập bộ nhớ không hợp lệ.
Có thể dễ dàng tích hợp với các ngôn ngữ khác như Assembly.
Phù hợp cho việc xây dựng ứng dụng lớn và
dự án hệ thống.
Trang 7-100% (4)
44
E 1 - ĐỀ THI CƠ SỞ LẬP TRÌNH
100% (2)
8
Phần 2 vietjet 1 - its kind of not…
buh
nance 100% (1)
26
Macmillan - Ielts Introduction Stude…
buh
nance 60% (15)
68
Nhom2 Pttcdnài phân tích tài chính…
buh
nance 100% (11)
18
Trang 8II B t v ng c a python ộ ừ ự ủ
Python là một ngôn ngữ lập trình hướng đối tượng, sử dụng các quy tắc đặt tên để giúp code dễ đọc, dễ hiểu và dễ bảo trì Các quy tắc đặt tên trong Python bao gồm:
Tên phải bắt đầu bằng chữ cái hoặc dấu gạch dưới
Tên chỉ có thể chứa các ký tự chữ cái, số và dấu gạch dưới
Tên phân biệt chữ hoa và chữ thường
Ngoài ra, Python cũng có một số quy ước đặt tên chung cho các thành phần khác nhau củacode, bao gồm:
Tên biến: Tên biến thường được viết bằng chữ thường và nối với nhau bằng dấu gạch dưới Ví dụ: my_variable, user_name
Tên hàm: Tên hàm thường được viết bằng chữ thường và nối với nhau bằng dấu gạch dưới Ví dụ: print_hello_world, calculate_area
Tên lớp: Tên lớp thường được viết bằng chữ hoa và nối với nhau bằng chữ cái Ví dụ: MyClass, Circle
Tên hằng số: Tên hằng số thường được viết bằng chữ hoa và nối với nhau bằng dấu gạch dưới Ví dụ: PI, MAX_SIZE
Lợi ích của việc tuân thủ các quy tắc đặt tên:
Giúp code dễ đọc, dễ hiểu và dễ bảo trì
Giúp tránh nhầm lẫn giữa các thành phần khác nhau của code
Giúp code của bạn trở nên chuyên nghiệp và dễ tiếp cận hơn
Một số lưu ý khi đặt tên:
Hãy sử dụng tên có ý nghĩa Tên biến, hàm, lớp và hằng số của bạn nên có ý nghĩa để giúp bạn hiểu rõ hơn về mục đích của chúng
Hãy sử dụng tên ngắn gọn nhưng súc tích Tên quá dài sẽ khó nhớ và khó đọc
Hãy tránh sử dụng các từ khóa của Python làm tên Các từ khóa là các từ có ý nghĩa đặc biệt trong Python và không thể được sử dụng làm tên
Hãy sử dụng các ký tự hợp lệ Tên biến, hàm, lớp và hằng số của bạn chỉ có thể chứa các ký tự chữ cái, số và dấu gạch dưới
Từ
and Toán tử AND logic
as Khai báo alias
assert Tuyên bố kiểm tra
break Thoát khỏi vòng lặp hoặc hàm
class Khai báo lớp
continu Bỏ qua phần còn lại của vòng
Reading TEST 3 - ôn anh văn
buh nance 100% (3)
13
Trang 9e lặp hiện tại
def Khai báo hàm
del Xóa biến
elif Câu lệnh điều kiện
else Phần else của câu lệnh if-else except Xử lý ngoại lệ
FALSE Giá trị logic sai
finally Phần finally của câu lệnh
try-except for Vòng lặp lặp lại
from Import một module
global Biến toàn cục
if Câu lệnh điều kiện
import Import một module
in Kiểm tra xem một giá trị có nằm trong một tập hợp không
TRUE Giá trị logic đúng
try Phần try của câu lệnh except
try-while Vòng lặp lặp lại cho đến khi
điều kiện sai with Xác định một khối mã
; Dấu chấm phẩy
"=" Dấu bằng
+ Dấu cộng
Trang 10<= Toán tử nhỏ hơn hoặc bằng
>= Toán tử lớn hơn hoặc bằng
== Toán tử bằng
!= Toán tử không bằng
is So sánh hai giá trị
not Toán tử NOT logic
and Toán tử AND logic
+= Cộng giá trị vào một biến
-= Trừ giá trị khỏi một biến
*= Nhân giá trị với một biến
/= Chia giá trị cho một biến
%= Chia lấy phần dư cho một biến
**= Nâng giá trị lên mũ
//= Chia lấy phần nguyên cho một
Dưới đây là một số lưu ý khi sử dụng bộ từ vựng trong Python:
Từ khóa không thể được sử dụng làm tên biến, hàm, lớp hoặc hằng số
Ký hiệu có ý nghĩa đặc biệt trong Python và không nên được sử dụng cho mục đích khác
Tên biến, hàm, lớp và hằng số nên có ý nghĩa để giúp bạn hiểu rõ hơn về mục đích của chúng
Tên nên ngắn gọn nhưng súc tích
Tên nên tránh sử dụng các ký tự đặc biệt
Trang 11III Các cái ký hi u đ c bi t ệ ặ ệ
Ký tự đặc biệt (escape sequence) trong python là gì ?
Ký tự đặc biệt trong Python hay còn gọi là escape sequence, hoặc là chuỗi thoát trong Python, là các chuỗi ký tự bắt đầu bởi dấu gạch chéo ngược như \n hay \t, nhằm biểu diễn các
ký tự vốn không thể biểu diễn theo cách thông thường trong Python
Trong Python, chúng ta dùng ký hiê ‘u \ k’m với ký tự khác để biểu diễn ký tự đặc biệt Đây làbảng tổng hợp ký tự đặc biệt trong python dưới đây
Số th! tự Ký tự đặc
1 \ Xuống dòng khi viết chuỗi nhiều dòng
5 \a Ký tự chuông BEL trong chuỗi
6 \b Ký tự backspace BS trong chuỗi
7 \f Ký tự Form feed FF trong chuỗi
8 \n Ký tự xuống dòng trong chuỗi
12 \000 ASCII ký tự 000 của hệ cơ số 8
13 \xhh ASCII ký tự xhh của hệ cơ số 16
14 \N {name} Ký tự có tên trong cơ sở dữ liệu Unicode
15 \uxxx Unicode ký tự xxx của hệ cơ số 16
16 \Uxxxxxxxx Unicode ký tự xxxxxx của hệ cơ số 32
Trong đ ch ng ta thư ng hay sử d ng nhiều nhất đ l ký tự đặc biệt của dầu ngoă $c đơn \', dấu nh)y k*p \" ,dấu xuống dòng \n v dấu tab \t
Ví dụ: Ký tự xuống dòng \n , chúng ta chỉ cần viết ký tự này giữa một chuỗi tại vị trí
muốn ngắt dòng như sau:
Xin chào\nViệt Nam
Tại vị trí chứa chuỗi \, đã ra lệnh cho máy tính xuống dòng ở đó và cách viết trên sẽ đượcmáy tính hiểu như sau:
Xin chào
Việt Nam
Cách sử dụng ký tự đặc biệt trong python
Để sử dụng ký tự đặc biệt (chuỗi thoát) trong python, ta viết ký tự đặc biệt đó trực tiếp vào vị trí mà cần thêm vào trong chuỗi
Ví dụ: Ta sẽ thêm ký tự đặc biệt xuống dòng vào chuỗi như sau:
print("Chào bạn\nBạn có khoẻ không\nH•n gă ‘p sau nhé")
Trang 12Kết quả ở những vị trí có ký tự đặc biệt sẽ được chuyển thành xuống dòng hoặc tab như sau:
1 Ki u d li u sốế (Numeric types) ể ữ ệ
Các kiểu dữ liệu này được sử dụng để biểu thị các số bao gồm:
- Kiểu số nguyên (int) : giá trị của nó là các số nguyên VD: 1,2,-3,…
- Kiểu số thực (float) : giá trị của nó là các số thực VD: 3.14, 2.78,…
- Kiểu số phức (complex) : các số có dạng a + bj, trong đó a và b là số thực và i là đơn
Là một loại dữ liệu chứa một tập hợp các giá trị Vd: [1, 2, 3, 4, 5]
8 Tuple trong Python:
Là một kiểu dữ liệu được sử dụng để lưu trữ các đối tượng (chẳng hạn như hằng số) sẽ không bị sửa đổi sau này Để khai báo enum người dùng cần khai báo như sau (val1, val2,
… , valn) mà trong đó val1, val2, …, valn là những giá trị của tuple
V Ki u d li u m ng ể ữ ệ ả
Mảng về cơ bản là 1 cấu trúc dữ liệu có thể chứa nhiều giá trị cùng một lúc Nó là một tập hợp hoặc một loạt những phần tử (có thứ tự) cùng loại Ví dụ:
a=arr.array('d',[1.2,1.3,2.3])
Trang 13Chúng ta có thể chạy vòng lặp qua các mảng một cách dễ dàng và tìm nạp các giá trị cần thiết bằng cách xác định số chỉ mục (index number) Mảng cũng có thể thay đổi, do đó, bạn
có thể thực hiện các thao tác khác nhau theo yêu cầu
1 List và mố-đun array trong Python
Có thể thao tác với list giống như mảng nhưng không thể ép kiểu phần tử được lưu trữ trong list Ví dụ:
a= [1, 3.5, "Hello"]
Nếu tạo mảng sử dụng mô-đun array, tất cả các phần tử của mảng phải có cùng kiểu số.import array as arr
a = arr.array('d', [1, 3.5, "Hello"]) // Chạy code này sẽ báo lỗi
Từ những ví dụ trên, chúng ta cần nhập mô-đun array để tạo các mảng Ví dụ:
import array as arr
C Type Python Type Kích thước tối thiểu tính theo byte
Ta sẽ không thảo luận về các kiểu dữ liệu C khác nhau trong bài này Ta sẽ dùng mã 'i' cho
số nguyên và 'd' cho số thập phân trong toàn bài
Trang 14Ghi chú: Mã code 'u' cho các ký tự Unicode không còn được chấp nhận từ phiên bản
Python 3.3 Tránh sử dụng nó khi có thể
- Sử dụng index để truy cập đến các phần tử của mảng Index cũng bắt đầu từ 0, tương
tự như trong list Python
import array as arr
a = arr.array('i', [2, 4, 6, 8])
print("Phần tử đầu tiên:", a[0])
print("Phần tử thứ 2:", a[1])
print("Phần tử cuối cùng:", a[-1])
Chạy chương trình trên ta được:
Phần tử đầu tiên: 2
Phần tử thứ 2: 4
Phần tử cuối cùng: 8
- Có thể truy cập vào một dãy phần tử trong mảng, sử dụng toán tử cắt lát:
import array as arr
print(numbers_array[:]) # Phần tử đầu tiên đến cuối cùng
Khi chạy code trên sẽ nhận được output là:
array('i', [65, 15, 95])
array('i', [5, 85, 65])
array('i', [52, 36, 25])
array('i', [5, 85, 65, 15, 95, 52, 36, 25])
- Mảng có thể thay đổi, các phần tử của nó có thể thay đổi theo cách tương tự như list.import array as arr
numbers = arr.array('i', [1, 1, 2, 5, 7, 9])
# thay đổi phần tử đầu tiên
numbers[0] = 0
print(numbers)
Trang 15print(numbers) # Output: array('i', [3, 5, 7, 4, 5, 6, 7])
- Hai mảng cũng có thể nối lại thành một nhờ toán tử +:
import array as arr
mang_le = arr.array('i', [3, 5, 7])
mang_chan = arr.array('i', [2, 6, 8])
numbers = arr.array('i') # tạo mảng trống
numbers = mang_le + mang_chan
# Code by quantrimang.com
print(numbers)
Output: array('i', [3, 5, 7, 2, 6, 8])
- Để xóa một hoặc nhiều phần tử của mảng ta sử dụng lệnh del
import array as arr
number = arr.array('i', [1, 3, 3, 5, 7])
del number[2] # xóa phần tử thứ 3
print(number) => Output: array('i', [1, 3, 5, 7])
del number # xóa toàn bộ mảng
print(number) # Error: array 'number' is not defined
Có thể sử dụng remove() để xóa mục đã cho hoặc pop() để xóa mục với index cho trước:
import array as arr
Trang 16numbers = arr.array('i', [1, 1, 3, 5, 9])
numbers.remove(1)
print(numbers) # Output: array('i', [1, 3, 5, 9])
print(numbers.pop(2)) # Output: 12
print(numbers) # Output: array('i', [1, 3, 9])
15.Đ ph c t p khi lo i b array trong Python ộ ! ạ ạ ỏ
Trong mảng của Python, có nhiều cách để in toàn bộ mảng với tất cả các nhân tố, thế nhưng để in một phạm vi nhân tố cụ thể từ mảng, cần dùng toán tử Slice Toán tử slice được thực hiện trên mảng cùng với dấu hai chấm (:) Để in các nhân tố ngay từ đầu tới mảng dùng [:Index], để in các nhân tố ở cuối dùng [:-Index], để in các nhân tố từ index cụ thể cho tới cuối dùng [Index:], để in các nhân tố trong một phạm vi, dùng [Start Index:End Index] và để
in toàn bộ danh sách bằng toán tử slice, dùng [:] Ngoài ra, để in toàn bộ mảng theo thứ tự đảo ngược, hãy sử dụng [::-1]
print("\nElements sliced from 5th "
"element till the end: ")
print(Sliced_array)
# In các nhân tố từ điểm bắt đầu tới cuối