3print"Tích:", product‘key in dict’: Kiểm tra key có tồn tại trong dict hay không‘dict.getkey’: Lấy giá trị của key, nếu key không tồn tại trả về None‘dict.setdefaultkey, default’: Lấy g
Trang 1KHOA THƯƠNG MẠI ĐIỆN TỬ
BÀI TẬP NHÓM MÔN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
Đề tài:
Tìm hiểu các kiểu dữ liệu chuẩn trong python
Lớp học phần : MIS3006_48K29.1
Hoàng Dương Thảo Hà Hoàng Thị Phương Đông Nguyễn Thị Nha Nguyễn Ngọc Tường Vy Nguyễn Quỳnh Thy
Thành phố Đà Nẵng, năm 2024
Trang 2PHẦN 1 KIỂU DỮ LIỆU NONE 1
1.1 Từ khóa 1
1.2 Phép toán 1
1.3 Cách dùng 1
1.4 Ví dụ 1
PHẦN 2 KIỂU DỮ LIỆU LOGIC 1
2.1 Từ khóa 1
2.2 Phép toán 1
2.3 Cách dùng 1
2.4 Ví dụ 1
PHẦN 3 KIỂU DỮ LIỆU SỐ (NUMERIC) 2
3.1 Từ khóa 2
3.2 Phép toán 2
3.3 Cách dùng 2
3.4 Ví dụ 2
PHẦN 4 KIỂU DỮ LIỆU TỪ ĐIỂN 3
4.1 Từ khóa 3
4.2 Cách dùng 3
4.3 Ví dụ 3
PHẦN 5 KIỂU DỮ LIỆU TẬP HỢP (SET, FROZEN SET) 4
5.1 Từ khóa 4
5.2 Các phép toán, cách dùng và ví dụ 4
5.2.1 Các phương thức xử lý Set trong Python 7
5.2.2 Tập hợp (Frozen Set) 9
PHẦN 6 KIỂU DỮ LIỆU CHUỔI (STRING) 10
6.1 Từ khóa 10
6.2 Các phép toán, cách dùng và ví dụ 10
Trang 3PHẦN 7 KIỂU DỮ LIỆU DANH SÁCH (LIST) 14
7.1 Từ khóa 14
7.2 Các phép toán, cách dùng và ví dụ 14
PHẦN 8 KIỂU DỮ LIỆU TUPLE 15
8.1 Từ khóa 15
8.2 Các phép toán, cách dùng và ví dụ 15
Trang 4PHẦN 1 KIỂU DỮ LIỆU NONE 1.1 Từ khóa
‘None’
1.2 Phép toán
‘is’, ‘is not’: So sánh xem một biến có tham chiếu đến ‘None’ hay không
1.3 Cách dùng
Được sử dụng để biểu diễn giá trị không tồn tại hoặc không xác định
1.4 Ví dụ
x = None
if x is None:
print("Biến x không có giá trị.")
PHẦN 2 KIỂU DỮ LIỆU LOGIC 2.1 Từ khóa
‘True’, ‘False’
2.2 Phép toán
‘and’, ‘or’, ‘not’: Phép toán logic
2.3 Cách dùng
Được sử dụng để biểu diễn giá trị logic ‘True’ hoặc ‘False’
2.4 Ví dụ
x = True
y = False
if x and not y:
print("x là True và y là False.")
Too long to read on your phone? Save
to read later on your computer
Save to a Studylist
Trang 5PHẦN 3 KIỂU DỮ LIỆU SỐ (NUMERIC) 3.1 Từ khóa
‘int’: Số nguyên (ví dụ: 1, 2, 3)
‘float’: Số thực (ví dụ: 1.2, 3.14)
‘complex’: Số phức (ví dụ: 1+2j, 3-4j)
3.2 Phép toán
Cộng (+): 1 + 2 = 3
Trừ (-): 3 - 2 = 1
Nhân (*): 2 * 3 = 6
Chia (/): 6 / 2 = 3
Lũy thừa (**): 2 ** 3 = 8
Chia lấy phần nguyên (//): 6 // 2 = 3
Chia lấy phần dư (%): 6 % 2 = 0
3.3 Cách dùng
Biến số được gán bằng giá trị số: x = 1
Sử dụng trong biểu thức toán học: y = x + 2
So sánh số: x > y
3.4 Ví dụ
# Khai báo biến số
x = 10
y = 3.14
# Phép toán
sum = x + y
difference = x - y
product = x * y
quotient = x / y
# In ra kết quả
print("Tổng:", sum)
print("Hiệu:", difference)
Trang 63 print("Tích:", product)
print("Thương:", quotient)
PHẦN 4 KIỂU DỮ LIỆU TỪ ĐIỂN 4.1 Từ khóa
‘dict’: Tạo từ điển mới
‘len(dict)’: Lấy số lượng phần tử
‘key in dict’: Kiểm tra key có tồn tại trong dict hay không
‘dict.get(key)’: Lấy giá trị của key, nếu key không tồn tại trả về None
‘dict.setdefault(key, default)’: Lấy giá trị của key, nếu key không tồn tại,thêm key mới với giá trị mặc định
4.2 Cách dùng
Tạo từ điển: my_dict = {"name": "Bard", "age": 2}
Truy cập giá trị: name = my_dict["name"]
Thêm phần tử: my_dict["gender"] = "male"
Xóa phần tử: del my_dict["age"]
4.3 Ví dụ
# Tạo từ điển
person = {"name": "Bard", "age": 2, "city": "Da Nang"}
# Truy cập giá trị
print("Tên:", person["name"])
print("Tuổi:", person["age"])
# Thêm phần tử
person["job"] = "AI Assistant"
# Xóa phần tử
del person["city"]
# In ra kết quả
print(person)
Trang 7PHẦN 5 KIỂU DỮ LIỆU TẬP HỢP (SET, FROZEN SET)
5.1 Từ khóa
Là một collection không có thứ tự, không có chỉ mục Không cho phép chứa dữ liệu trùng lặp
Set trong Python được khai báo với các dấu ngoặc nhọn {}
Ví dụ:
setFruits = {"apple", "cherry", "banana"}
print(setFruits)
5.2 Các phép toán, cách dùng và ví dụ
Truy cập các phần tử của Set trong python
Không thể truy cập các phần tử trong một Set bằng cách sử dụng chỉ mục, vì Set không lưu trữ các phần tử theo thứ tự nhập ban đầu Có thể sử dụng vòng lặp for để truy cập các phần tử của một Set
setFruits {"apple", "cherry", "banana"}=
for in x setFruits:
print(x)
-> apple
cherry
banana
Thêm item vào một set
sử dụng hàm add() để thêm một item vào một set:
setFruits = {"apple", "cherry", "banana"}
setFruits.add("kiwi")
print(setFruits)
-> {'banana', 'kiwi', 'apple', 'cherry'}
sử dụng hàm update() để thêm nhiều item vào một set:
setFruits = {"apple", "cherry", "banana"}
setFruits.update(["orange", "mango", "grapes"])
print(setFruits)
Trang 85 -> {'grapes', 'orange', 'mango', 'cherry', 'apple', 'banana'}
Hàm len() được sử dụng để xem có bao nhiêu item trong một set:
setFruits {"apple", "cherry", "banana"}=
print(len(setFruits))
-> 3
Để xóa một phần tử trong một set, sử dụng hàm remove() hoặc discard()
setFruits {"apple", "cherry", "banana"}=
setFruits.remove("banana")
print(setFruits)
-> {'cherry', 'apple'}
setFruits {"apple", "cherry", "banana"}=
setFruits.discard("banana")
print(setFruits)
-> {'cherry', 'apple'}
- có thể sử dụng hàm pop(), để xóa một phần tử, nhưng phương thức này sẽ xóa phần tử cuối cùng Nhưng set không có thứ tự, vì vậy sẽ không biết mục nào bị xóa setFruits {"apple", "cherry", "banana"}=
x setFruits.pop()=
print(x)
-> cherry
- Clear xóa tất cả phần tử trong 1 set
setFruits {"apple", "cherry", "banana"}=
setFruits.clear()
print(setFruits)
-> set()
- Lệnh del sẽ xóa một set hoàn toàn:
Trang 9setFruits {"apple", "cherry", "banana"}=
del setFruits
print(setFruits)
-> NameError: name 'setFruits' is not defined
Các phép toán trong tập hợp:
Phép hợp: Hợp của hai tập hợp cho kết quả là tất cả các phần tử trong hai tập hợp, chú ý phần tử nào lặp lại sẽ chỉ xuất hiện 1 lần trong tập kết quả Trong Python, để thực hiện phép hợp, sử dụng phương thức union() Chú ý, sử dụng tập hợp nào trước cũng cho kết quả như nhau, art_friends.union(science_friends) cũng cho kết quả như science_friends.union(art_friends)
Ví dụ
art_friends = {"Rolf", "Anne", "Jen"}
science_friends = {"Jen", "Charlie"}
all_friends = art_friends.union(science_friends)
print(all_friends) # Kết quả {'Rolf', 'Anne', 'Jen', 'Charlie'}
Phép trừ: Hiệu của một tập A trừ đi một tập B cho kết quả là tất các phần tử thuộc A nhưng không thuộc B Sử dụng phương thức difference() để thực hiện phép trừ hai tập hợp
Ví dụ
art_friends = {"Rolf", "Anne", "Jen"}
science_friends = {"Jen", "Charlie"}
art_but_not_science = art_friends.difference(science_friends)
science_but_not_art = science_friends.difference(art_friends)
print(art_but_not_science) # Kết quả {'Rolf', 'Anne'}
print(science_but_not_art) # Kết quả {'Charlie'}
Hiệu đối xứng của hai tập hợp: Hiệu đối xứng của hai tập A và B được kết quả
là tập hợp các phần tử thuộc cả A và B nhưng không đồng thời thuộc cả tập A
và B
art_friends = {"Rolf", "Anne", "Jen"}
science_friends = {"Jen", "Charlie"}
not_in_both_1 = art_friends.symmetric_difference(science_friends)
Trang 107 print(not_in_both_1) # Kết quả {'Rolf', 'Charlie', 'Anne'}
not_in_both_2 = science_friends.symmetric_difference(art_friends)
print(not_in_both_2) # Kết quả {'Rolf', 'Anne', 'Charlie'}
Phép giao: Phép giao hai tập hợp cho kết quả là các phần tử đồng thời thuộc cả hai tập hợp Trong Python sử dụng phương thức intersection() để thực hiện phép giao
art_friends = {"Rolf", "Anne", "Jen"}
science_friends = {"Jen", "Charlie"}
art_and_science = art_friends.intersection(science_friends)
print(art_and_science) # Kết quả là {"Jen"}
5.2.1 Các phương thức xử lý Set trong Python
clear() Xóa tất cả các phần tử của một set
copy() Returns a copy of the set
difference() Trả về một set chứa các phần tử khác nhau của 2
hoặc nhiều set
difference_update() Xóa các phần tử của set này mà tồn tại trong set
khác
discard() Xóa phần tử được chỉ định
intersection() Trả về một set mà các phần tử của nó tồn tại trong
Trang 11cả 2 set đã cho.
intersection_update() Xóa các phần tử của set này mà không tồn tại trong
set kia
isdisjoint() Trả về true nếu không có phần tử nào trong một set
trùng với phần tử nào trong set thứ 2 Trả về false nếu có bất kỳ phần tử nào trong set ban đầu giống với set thứ 2
issubset() Trả về true nếu tất cả các phần tử trong một set tồn
tại trong set2, ngược lại trả về false
issuperset() Trả về true nếu tất cả các phần tử trong set2 tồn tại
trong một set, ngược lại trả về false
pop() Xóa phần tử cuối cùng của một set
remove() Xóa phần tử được chỉ định
symmetric_difference() Trả về một set mà chứa các phần tử của cả 2 set đã
cho, sao cho các phần tử này tồn tại trong set này nhưng không tồn tại trong set kia
symmetric_difference_update() Cập nhật set ban đầu bằng việc loại bỏ phần tử của
cả 2 set đã cho, sao cho các phần tử này tồn tại trong set này nhưng không tồn tại trong set kia
union() Trả về môt set mà được nối từ 2 set với nhau
update() Nối set này với set khác
Trang 125.2.2 Tập hợp (Frozen Set)
Python cung cấp một hàm tên là frozenset(), kết quả trả về là một tập hợp (Set) không thể thay đổi Khi đó, nếu thực hiện các phương thức add(), remove(), update()… sẽ báo lỗi
“Đóng băng” tập hợp sẽ làm cho tập hợp đó giống như cấu trúc Tuple trong Python friends = {"Rolf", "Anne", "Jen"}
frozen_friends = frozenset(friends)
frozen_friends.add({"Jen", "Charlie"})
print(frozen_friends) # Kết quả lỗi: AttributeError: 'frozenset' object has no attribute 'add'
Đóng băng một tập hợp rất hữu ích trong trường hợp muốn tập hợp đó không thể thay đổi Ví dụ khi dùng một tập hợp làm key cho một từ điển (Dictionary), sẽ được giới thiệu trong phần tiếp theo
A = {1, 2, 3}
B = {'a', 'b', 'c'}
C = {x: 'foo', y: 'bar'} # Kết quả lỗi: TypeError: unhashable type: 'set'
Tuy nhiên nếu đóng băng các tập hợp này, sẽ không có lỗi nào xảy ra
A = frozenset({1, 2, 3})
B = frozenset({'a', 'b', 'c'})
C = {x: 'foo', y: 'bar'} # Không có lỗi
PHẦN 6 KIỂU DỮ LIỆU CHUỔI (STRING)
6.1 Từ khóa
Là một trong các kiểu phổ biến nhất trong Python Chuỗi ký tự trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép Python coi các lệnh trích dẫn đơn
và kép là như nhau Ví dụ: 'Hello' tương đương với "Hello"
Hiển thị một chuỗi trong Python bằng print ()
1
2
print("Hello")
print('Hello')
Trang 136.2 Các phép toán, cách dùng và ví dụ
Toán
tử
Mô tả & cách thức hoạt động Ví dụ
+ Nối (concatenate) 2 string với nhau để tạo thành một
string mới
"Hello" +"MCI" ==>
"Hello MCI"
* Tạo một string mới bằng cách nối (concatenate) nhiều lần
bản sao chép của một string
"MCI"*2 ==>
"MCIMCI" [] Truy cập và trả về ký tự tại vị trí cho bởi chỉ số x = "Hello"
x[1] ==> "e" [ : ] Trả về một chuỗi con bao gồm các ký tự trong phạm vi
(range)
x = "Hello" x[1:4] ==>
"ell" x[1: ] ==>
"ello"
in Trả về True nếu ký tự tồn tại trong string đã cho x = "Hello"
'H' in x ==> True not
in
Trả về True nếu ký tự không tồn tại trong string đã cho x = "Hello"
'M' not in x
==> True r/R Chuỗi thô (Raw String) - Ngăn chặn ý nghĩa thực tế của
các ký tự thoát (Escape character) Cú pháp cho chuỗi thô
giống chuỗi thông thường ngoại trừ "toán tử chuỗi thô",
chữ "r" đứng trước dấu ngoặc kép "R" có thể là chữ
thường (r) hoặc chữ hoa (R) và phải được đặt ngay trước
dấu trích dẫn đầu tiên
print (r'\n\t')
==> \n\t print (R'\n\t')
==> \n\t
Trang 14Các hàm cơ bản xử lý String của python
Hàm strip() loại bỏ bất kỳ khoảng trắng từ đầu hoặc cuối cùng
a = " Hello World! "
print(a.strip()) # returns "Hello World!"
-> Hello World!
- Hàm lower() trả về chuỗi chữ thường, ví dụ:
a = "Hello World!"
print(a.lower()) # returns "hello world!"
-> hello world!
- Hàm upper() trả về chuỗi chữ hoa, ví dụ:
a = "Hello World!"
print(a.upper()) # returns "HELLO WORLD!"
-> HELLO WORLD!
- Hàm replace() thay thế một chuỗi bằng một chuỗi khác, ví dụ:
a = "Hello World!"
print(a.replace("l", "t"))
-> Hetto Wortd!
- Hàm split() tách chuỗi thành các chuỗi con, ví dụ:
a = "Hello, World!"
print(a.split(","))
-> ['Hello', ' World!']
String Method - Phương thức chuỗi
Trang 15capitalize() Viết hoa ký tự đầu tiên của chuỗi
casefold() Chuyển chuỗi thành chữ thường
center() Trả về một chuỗi mới, trong đó chuỗi ban đầu được cho vào trung
tâm và hai bên đó là các fillchar sao cho tổng số ký tự của chuỗi mới là width
count() Đếm xem chuỗi string này xuất hiện bao nhiêu lần trong chuỗi
string hoặc chuỗi con của nó nếu bạn cung cấp các chỉ mục start
và end
encode() Trả về một phiên bản đã được mã hóa của chuỗi
endswith() Trả về kết quả là True nếu chuỗi kết thúc với một giá trị cụ thể
find() Tìm kiếm chuỗi với giá trị cụ thể và trả về vị trí mà nó được tìm
thấy
format() Định dạng giá trị cụ thể của chuỗi
format_map(
)
Định dạng giá trị cụ thể của chuỗi
index() Tìm kiếm chuỗi với giá trị cụ thể và trả về vị trí mà nó được tìm
thấy
isalnum() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là chữ và số
Trang 16isalpha() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là chữ cái
isdecima() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là chữ số thập
phân
isdigit() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là chữ số
isidentifier() Trả về kết quả là True nếu String là số nhận dạng
islower() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là chữ thường
isnumeric() Trả về kết quả là True nếu tất cả ký tự trong chuỗi là số
PHẦN 7 KIỂU DỮ LIỆU DANH SÁCH (LIST)
7.1 Từ khóa
List là một kiểu dữ liệu trong nhiều ngôn ngữ lập trình, cho phép lưu trữ một tập hợp các giá trị có thứ tự
7.2 Các phép toán, cách dùng và ví dụ
Khởi tạo List: Trong Python, có thể khởi tạo một List bằng cách đặt các giá trị trong dấu ngoặc vuông [], cách nhau bởi dấu phẩy
Ví dụ: my_list = [1, 2, 3, 4, 5]
Truy cập phần tử trong List: Sử dụng chỉ số để truy cập phần tử trong List Chú ý rằng chỉ số bắt đầu từ 0
Ví dụ: first_element = my_list[0]
Trang 17Cắt List (Slicing): Lấy một phần của List bằng cách sử dụng slicing.
Ví dụ: sliced_list = my_list[1:4] # Lấy chỉ số từ 1 đến 3
Thay đổi giá trị phần tử: có thể thay đổi giá trị của một phần tử bằng cách sử dụng chỉ số
Ví dụ: my_list[2] = 10
Thêm phần tử vào List: Sử dụng phương thức append() để thêm một phần tử vào cuối List
Ví dụ: my_list.append(6)
Xoá phần tử khỏi List: Sử dụng phương thức remove() hoặc del để xóa phần tử khỏi List
Ví dụ: my_list.remove(4)
Kiểm tra sự có mặt của phần tử: Sử dụng toán tử in để kiểm tra xem một phần tử có trong List hay không
Ví dụ: if 3 in my_list:
print("3 có trong List.")
Độ dài của List: Sử dụng hàm len() để lấy độ dài của List
Ví dụ: length = len(my_list)
PHẦN 8 KIỂU DỮ LIỆU TUPLE 8.1 Từ khóa
Tuple là một kiểu dữ liệu trong nhiều ngôn ngữ lập trình, giống như List, nhưng có sự khác biệt chính là Tuple là không thay đổi (immutable), nghĩa là sau khi tạo ra một Tuple, bạn không thể thay đổi nó bằng cách thêm, sửa, hoặc xóa các phần tử
8.2 Các phép toán, cách dùng và ví dụ
Khởi taọ Tuple: Trong Python, có thể khởi tạo một Tuple bằng cách đặt các giá trị trong dấu ngoặc đơn (), cách nhau bởi dấu phẩy
Ví dụ: my_tuple = (1, 2, 3, 4, 5)
Truy cập phần tử trong Tuple: Sử dụng chỉ số để truy cập phần tử trong Tuple Chú ý rằng chỉ số bắt đầu từ 0
Ví dụ: first_element = my_tuple[0]