Tải bản đầy đủ (.docx) (26 trang)

BÀI TẬP NHÓM CẤU TRÚC DỮ LIỆU & GIẢI THUẬT CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PYTHON

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (592.43 KB, 26 trang )

TRƯỜNG ĐẠI HỌC KINH TẾ ĐHĐN KHOA THỐNG KÊ TIN HỌC


BÀI TẬP NHÓM
CẤU TRÚC DỮ LIỆU & GIẢI THUẬT
NHÓM: NHÓM 6
GVHD : HOÀNG THỊ THANH HÀ

STT
1
2
3
4
5

SVTH
Trần Thảo Nhi
Hồ Nguyễn Khánh Linh
Nguyễn Thị Anh Thoa
Phạm Thị Hoa Mai
Trần Thanh Phong

Đà Nẵng, 2/2022


MỤC LỤC
1. Logic:............................................................................................... 1
a. Định nghĩa:................................................................................... 1
b. Các phép toán trên kiểu Boolean:................................................ 2
c. Thứ tự ưu tiên toán tử logic trong Python:................................... 3
2. Numeric:..........................................................................................4


a. Định nghĩa:................................................................................... 4
b. Ví dụ.............................................................................................. 5
3. Sequences.........................................................................................6
a. Định nghĩa:................................................................................... 6
b. Các loại Sequences cơ bản:..........................................................7
4. Mapping:......................................................................................... 8
a. Định nghĩa:................................................................................... 8
b. Các loại Mapping:........................................................................ 9
BẢNG PHÂN CÔNG CÔNG VIỆC................................................... 10

2|Page


CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PYTHON:
1. None:
a. Định nghĩa:
Từ khóa None được sử dụng để xác định một biến null hoặc một đối tượng.
Trong Python,từ khóa None là một đối tượng và nó là một kiểu dữ liệu của
lớp NoneType.
Chúng ta có thể gán None cho bất kỳ biến nào, nhưng bạn không thể tạo các
đối tượng NoneType khác.

Các kiểu dữ liệu của None:
Kiểu dữ liệu

Phép toán Phần tử
khơng

Ví dụ


Sốngun

+

0

0+69 = 69 + 0

Sốthực

+

0.0

0.0 +96.0 = 96.0 +0.0

Danh sách

Extend, +

[]

[1] + [] = [] + [1] = [1]


Tuple

+

()


(1,)+() = () + (1,)=(1,)

Tập hợp

union

set([])

set([1]).union(set([]))=
set([]).union(set([1]))= set([1])

Chuỗi

+

‘’ ‘’

Từ điển

update

{}

Số phức

+

0+0j


Logic

or

False

‘’abc’’+ “” = ‘’ ‘’ + ‘’abc‘’ = ‘’abc ‘’
{1:1}.update({})={}.update({1:1})
={1:1}

False or True = True or False =
True

b. None và các toán tử logic:
None là một tập hợp đặc biệt, chỉ có chính nó, mà cũng khơng phải chính nó vì
None bao hàm ý nghĩa thiếu giá trị:

None tương tác với tất cả phần tử không:

Nếu ta gọi S là tập hợp các phần tử khơng, bao gồm chính None, thì với phép
tốn and, None chính là phần tử khơng bên phải của S. None cũng chính là giá
trị.
Tuy nhiên:


None là phần tử không bên phải đối với tập S nói trên trong phép tốn or.

Qua đây ta thấy được thứ tự các toán hạng là điều cần phải lưu ý.
Phép toán or giữa None và object bất kỳ không phải là phần tử không mà là ánh
xạ đồng nhất bất kể thứ tự phép toán:



Phép tốn and thì ln trả kết quả về None với bất kỳ phần tử nào không phải là
không, không kể thứ tự toán hạng:


Một biểu thức logic chứa None có thể trả về None, nghĩa là khơng có giá trị
None là tận cùng, là nhỏ hơn tất cả

None chính là None
c. Các ví dụ:
 None và is

 None và ==


 None là giá trị

 None và None

 None và False

 None với chuỗi rỗng

2. Logic:
a. Định nghĩa:
Kiểu bool (Boolean) trong Python là kiểu dữ liệu chỉ có 2 kết quả trả về là
True và False. True và False là 2 từ khóa trong Python.
Lưu ý: 2 từ khóa True và False phải được viết hoa chữ cái đầu tiên “T” và
“F”, nếu khơng sẽ gặp lỗi.

Ví dụ:


Python cho phép chuyển đổi các kiểu dữ liệu khác sang kiểu dữ liệu Boolean
bằng cách sử dụng hàm bool(). Những giá trị sau đây được trả về kết quả False:
 False
 Kiểu None
 Số nguyên, số thập phân, số phức nếu số đó bằng 0
 Chuỗi rỗng (khơng chứa bất kì kí tự nào)
Tất cả các giá trị khác được trả về kết quả True.
Ví dụ:

b. Các phép tốn trên kiểu Boolean:
Một số phép tốn thơng dụng trên kiểu bool: not, ==, !=, or, and.
Quy tắc:


A

B

not A

not B

A == B

A != B

A or B


A and B

T

F

F

T

F

T

T

F

F

T

T

F

F

T


T

F

T

T

F

F

T

F

T

T

F

F

T

T

T


F

F

F

Ví dụ:

c. Thứ tự ưu tiên tốn tử logic trong Python:
Quy tắc:
Trong trường hợp có nhiều tốn tử logic trong python cùng tồn tại trong một biểu
thức thì thứ tự ưu tiên xử lý của chúng như sau:
not > and > or


11 | P a g e


Biến Python Boolean yêu cầu tối thiểu 24 bytes trên hệ thống 32 bit / 64 bit

3. Numeric:
a. Định nghĩa:
Trong Python, loại dữ liệu số biểu thị dữ liệu có giá trị số. Giá trị số có thể là
số nguyên, số thực hoặc thậm chí là số phức. Các giá trị này được định nghĩa
là INT, FLOAT và COMPLEX trong Python.
Set of values

Type


Size

Integer

int

24 bytes

float

24 bytes

Floating-point
number
Complex

complex 32 bytes

Tất cả các loại dữ liệu số ( trừ complex ) đều thực hiện được các phép tính
sau :


b. Ví dụ :
Input :
x = 100
y = 3.256
print(x + y)
print(x - y)
print(x * y)
print(x / y)

print(x // y)
print(x % 7)
print(12 ** 3)
myComplex1 = complex('7+5j')
myComplex2 = complex('26+8j')


res = myComplex1 + myComplex2
print(res)
print(res.conjugate())
print(divmod(x, 3))
print(Fraction(0.125))
Output :
103.256
96.744
325.59999999999997
30.712530712530715
30.0
2
1728
(33+13j)
(33-13j)
(33, 1)
1/8

4. Sequences:
Set of values Type

Size


String

str

51 bytes

List

list

56 bytes

Range

range

48 bytes

Tuple

tuple

40 bytes

a. Định nghĩa:
- Trong Python, Sequences là tập hợp có thứ tự của các kiểu dữ liệu giống
hoặc khác nhau. Sequences cho phép lưu trữ nhiều giá trị một cách có tổ
chức và hiệu quả.
- Các thao tác trình tự được sắp xếp theo thứ tự ưu tiên tăng dần:
Hoạt động

Kết quả
x in s

True nếu một phần tử của s bằng x , nếu không thì False


x not in s

False nếu một phần tử của s bằng x , nếu khơng thì True

s+t

Nối t và s

s * n hoặc n * s

Thêm s vào chính nó n lần

s[i]

Lập chỉ mục phần tử thứ i của s, mặc định = 0

s[i:j]

Cắt lát s từ i đến j

s[i:j:k]

Cắt lát s từ i đến j với khoảng cách (bước) là k


len(s)

Chiều dài của s

min(s)

Giá trị nhỏ nhất của s

max(s)

Giá trị lớn nhất của s

s.count(x)

Đếm tổng số lần xuất hiện của x trong s

- Trong đó:
 s và t là các list cùng kiểu
 n, i, j và k là các số nguyên
 x là một giá trị bất kỳ đáp ứng mọi giới hạn về kiểu và giá trị do s áp
đặt .
b. Các loại Sequences cơ bản:
 String
 List
 Range
 Tuple
 String (Chuỗi):
- Chuỗi trong Python là một tập hợp các ký tự được sắp xếp có trình tự
được sử dụng để thể hiện và lưu trữ thông tin dựa trên văn bản. Chuỗi
được lưu trữ dưới dạng các ký tự riêng lẻ trong một vị trí bộ nhớ liền kề.

- Chuỗi là dữ liệu bất biến trong Python. (Một khi được tạo, chuỗi đó khơng
thể thay đổi)
- Chuỗi được đặt trong dấu ‘ ’ hoặc dấu “ ”


- Các chuỗi có thể nối với nhau bằng tốn tử + hoặc viết liền kề nhau, và lặp
lại chuỗi bằng cách sử dụng toán tử *

- Truy cập đến kí tự trong chuỗi:
Trong Python, các kí tự của chuỗi được truy cập riêng bằng cách sử dụng
phương thức: Lập chỉ mục. Lập chỉ mục cho phép truy cập các ký tự từ
phía trước và sau của Chuỗi. Các phần tử được đánh số bắt đầu từ 0 theo
chiều trái qua phải và từ -1 theo chiều từ phải qua trái. Chỉ có thể sử dụng
số nguyên để lập chỉ mục.

- Cắt chuỗi:

- Một số hàm xử lý chuỗi:
 str.capitalize( ): Hàm có tác dụng trả về một bản sao của chuỗi với ký tự
đầu tiên được viết hoa và phần cịn lại viết thường

 str.center( len[char]): Hàm này có tác dụng trả về chuỗi được hiển thị ở
giữa một chuỗi.


Trong đó:
 len: số lượng ký tự chuỗi mới
 char: ký tự hiển thị ở 2 bên chuỗi cũ (mặc định là khoảng trắng)
Nếu len nhỏ hơn độ dài chuỗi cần xử lí thì hàm sẽ trả về chuỗi
ban đầu.


 str.count(sub , start, end)
Hàm này có tác dụng đếm xem ký tự này xuất hiện bao nhiêu lần trong
chuỗi
Trong đó:
 sub là chuỗi cần đếm
 start là index của chuỗi cần tìm (mặc định là 0)

 end là index kết thúc của chuỗi cần tìm (mặc định là -1)
 List (Danh sách):
- List trong python là một dạng dữ liệu cho phép lưu trữ nhiều loại dữ liệu
khác nhau và chúng ta có thể truy cập đến các phần tử của list thong qua vị trí
của chúng.
- List có thể được xây dựng theo một số cách:
o Sử dụng một cặp dấu ngoặc vuông để biểu thị danh sách trống [ ]
o Sử dụng dấu ngoặc vuông, phân tách các mục bằng dấu phẩy [a] ,
[a, b, c]
o Sử dụng hàm tạo list: list() hoặc list(iterable)

- Truy cập giá trị của list:
Các phần tử được đánh số bắt đầu từ 0 theo chiều trái qua phải và từ -1 theo
chiều từ phải qua trái. Ký tự của chuỗi được truy cập theo công thức: List[…].
Index bắt buộc phải là một số nguyên.


- Cắt lát: Có thể truy cập đến một loạt phần tử trong list bằng cách sử dụng
toán tử cắt lát : (dấu 2 chấm).

- Một số hàm xử lí danh sách:
 list.sort(reverse, key)

Hàm 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.
Trong đó:
o reverse là 1 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.
o key là callback def để xử lý list hoặc là một lamda function
(thường được dùng để sắp xếp các list tuple hoặc dictionary).

 list.append(obj): Hàm có tác dụng them vào phần cuối của một list.


Trong đó: obj là phần tử mà bạn muốn thêm vào list

 ist.insert(index, val):
Hàm 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.
Trong đó:
o index là vị trí mà bạn muốn thêm phần tử val vào.
o val là phần tử mà bạn muốn thêm vào trong list.

 Range:
- Hàm range() được tích hợp sẵn trong Python được sử dụng để tạo một chuỗi
các số bắt đầu từ 0 theo mặc định, tăng thêm 1 (theo mặc định) và kết thúc tại
một số được chỉ định.
- Cú pháp:
o range(stop)
Trả về một chuỗi bắt đầu từ 0 tới stop (mặc định là index -1)
Trả về 1 chuỗi rỗng nếu stop có giá trị là 0 hoặc nhỏ hơn 0.

o range(start, stop, step)
Start: là tham số bắt đầu,dãy số sẽ bắt đầu với tham số này
Stop: là điểm kết thúc của dãy số, dãy số sẽ dừng ngay khi đạt
đến tham số dừng.
Step: là số nguyên xác định khoảng cách bước đi của mỗi số
trong chuỗi


 Tuple:
- Tuple trong Python là một chuỗi các phần tử có thứ tự giống như list. Sự khác
biệt giữa list và tuple là chúng ta không thể thay đổi các phần tử trong tuple
khi đã gán, nhưng trong list thì các phần tử có thể thay đổi.
- Tuple có thể được xây dựng bởi một số cách:
o Đặt tất cả các phần tử trong dấu ngoặc đơn ()
o Sử dụng dấu phẩy (,) để ngăn cách các phần tử trong tuple
o Sử dụng dấu (,) ở cuối cho một tuple đơn: (a,) hoặc a,
o Sử dụng tuple() hoặc tuple(iterable)

- Truy cập giá trị của tuple:
Các phần tử được đánh số bắt đầu từ 0 theo chiều trái qua phải và từ -1 theo
chiều từ phải qua trái. Ký tự của chuỗi được truy cập theo công thức: Tuple[…].
Index bắt buộc phải là số nguyên.


- Cắt lát: Có thể truy cập đến một loạt phần tử trong tuple bằng cách sử dụng toán
tử cắt lát : (dấu 2 chấm).

- Thay đổi một tuple:
Tuple không thể thay đổi, các phần tử trong tuple cũng không thể thay đổi sau
khi gán. Tuy nhiên nếu phần tử trong tuple có một kiểu dữ liệu có thể thay đổi

(ví dụ: list) thì các phần tử lồng nhau có thể được thay đổi. Chúng ta cũng có
thể gán giá trị khác cho tuple (gọi là gán lại - reassignment).

5. Mapping:
a. Định nghĩa:
- Chức năng mapping trong Python sử dụng hàm và các đối tượng iterable. Nó
cho phép vịng lặp, lặp qua các phần tử và áp dụng hàm chuyển đổi lên các
phần tử đó. Sau đó, nó trả về một đối tượng bản đồ lưu trữ giá trị của mục
chuyển đổi. Chức năng đầu vào có thể là bất kỳ chức năng có thể gọi nào, bao
gồm các hàm tích hợp, các hàm lambda, chức năng, lớp và phương thức do
người dùng xác định. Bây giờ, tính tốn các phép nhân tương tự như bạn đã làm
trong ví dụ trước, nhưng lần này với cả vòng lặp for và bản đồ hoạt động riêng
biệt, để hiểu chức năng Map() hoạt động như thế nào.
- Cú pháp của hàm Map () trong Python là: map(function, iterables)

Set of
values

Type

Size

Library

Dictionary Complex

Minimum: 240 bytes

PyDictionary


Set

Minimum: 224 bytes

Complex


Frozenset

Complex

Nếu đối số tích hợp đầu vào được cung
cấp, thì Frozenset được tạo từ các phần tử
lặp lại. Nếu không có đối số được cung
cấp, thì một đối tượng Frozenset rỗng
được trả về.

b. Các loại Mapping:
 Dictionary:

VD1:
Input:
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964 }
print(thisdict)
Output:



{'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
VD2:
Input
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964 }
print(thisdict["brand"])
Output
Ford


 Set:

Ví dụ:
VD1:
Input
thisset = {"apple", "banana", "cherry"}
print(thisset)
Output
{'cherry', 'apple', 'banana'}
VD:


Input
thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)
Output
{'apple', 'cherry', 'banana'}
 Frozenset:

VD:
Input
mylist = ['apple', 'banana', 'cherry']
x = frozenset(mylist)
print(x)
Output
frozenset({'banana', 'apple', 'cherry'})


×