1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

27 96 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 542,77 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 SVTH 1 Trần Thảo Nhi 2 Hồ Nguyễn Khánh Linh 3 Nguyễn Thị Anh Thoa 4 Phạm Thị Hoa Mai 5 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ốnguyên + 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] 3|Page Tuple + () ‘’ ‘’ (1,)+() = () + (1,)=(1,) Tập hợp union set([]) set([1]).union(set([]))= set([]).union(set([1]))= set([1]) Chuỗi + ‘’abc’’+ “” = ‘’ ‘’ + ‘’abc‘’ = ‘’abc ‘’ Từ điển update {} {1:1}.update({})={}.update({1:1}) ={1:1} Số phức + 0+0j Logic or False False or True = True or False = True None và các toán tử logic: b. 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 toá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: 4|Page None là phần tử không bên phải đối với tập S nói trên trong phép toá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: 5|Page Phép toán and thì luôn 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: 6|Page 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ácvídụ:  None và is  None và == 7|Page  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ụ: 8|Page 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 toán trên kiểu Boolean: Một số phép toán thông dụng trên kiểu bool: not, ==, !=, or, and. Quy tắc: 9|Page 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ụ: Quy tắc: Trong trường hợp có nhiều toá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 c. Thứ tự ưu tiên toán tử logic trong Python: 10 | P a g e 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 Floating-point number float 24 bytes 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 : 12 | P a g e 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 myComplex2 complex complex =() =() ''7+5j'' ''26+8j'' 13 | P a g e print(res. print( print( Output : 30.0 2 1728 1/8 4. Sequences: ()) x, 3)) (0.125)) res = myComplex1 + myComplex2 print(res) Fraction 103.256 96.744 325.59999999999997 30.712530712530715 (33+13j) (33-13j) (33, 1) 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: conjugate divmod( - 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: 14 | P a g e 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*nhoặ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 “ ” 15 | P a g e - - Các chuỗi có thể nối với nhau bằng toá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. 16 | P a g e 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. 17 | P a g e - 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. 18 | P a g e 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 19 | P a g e  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. 20 | P a g e - 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 toá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 Complex Minimum: 224 bytes 21 | P a g e 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: 22 | P a g e {''brand'': ''Ford'', ''model'': ''Mustang'', ''year'': 1964} VD2: Input } print ]) Output Ford thisdict = { "brand": "Ford" , , "model" : "Mustang" "year" : 1964 (thisdict[ "brand" 23 | P a g e  Set: Ví dụ: VD1: Input print Output , "banana", "cherry"} thisset = { "apple" (thisset) {''cherry'', ''apple'', ''banana''} VD: 24 | P a g e Input thisset = { "apple" , "banana", "cherry", "apple"} print(thisset) Output {''apple'', ''cherry'', ''banana''}  Frozenset: VD: Input , , ''cherry''] x= print(x) Output frozenset({''banana'', ''apple'', ''cherry''}) mylist = [ ''apple'' ''banana'' frozenset (mylist) 25 | P a g e BẢNG PHÂN CÔNG CÔNG VIỆC: SVTH MSSV Công việc Mức độ hoàn thành Trần Mỹ Khánh Hà 201124029211 Mapping 100% Lê Thị Lan Hương 201124029213 Numeric 100% Nguyễn Khánh Long 201124029221 Logic 100% Nguyễn Thị Hương Giang 201124029210 Sequences 100% Lê Thị Hiếu Thảo 201124029244 None 100% 26 | P a g e

Trang 2

2| Page

MỤCLỤC

1 Logic: 1

a Địnhnghĩa: 1

b Cácphép toán trên kiểuBoolean: 2

c Thứ tựưutiêntoántửlogictrongPython: 3

2 Numeric: 4

a Địnhnghĩa: 4

b Vídụ 5

3 Sequences 6

a Địnhnghĩa: 6

b Cácloại Sequencescơbản: 7

4 Mapping: 8

a Địnhnghĩa: 8

b Cácloại Mapping: 9

BẢNGPHÂN CÔNGCÔNGVIỆC 10

Trang 4

Tậphợp union set([]) set([1]).union(set([]))=

None tươngtác vớitấtcả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éptoánand, Nonechínhlàphầntửkhôngbênphảicủa S.None cũngchínhlàgiátrị.Tuynhiên:

Trang 5

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

Qua đây tathấy đượcthứ tự cáctoán hạnglàđiều cầnphả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à ánhxạđồng nhấtbất kể thứ tự phéptoán:

Trang 6

Phép toán and thì luôn 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:

Trang 7

MộtbiểuthứclogicchứaNonecóthểtrảvềNone, nghĩalàkhôngcógiátrịNone làtậncùng,lànhỏ hơn tất cả

NonechínhlàNone

c Cácvídụ:

 None và is

Trang 9

Python cho phép chuyển đổi các kiểu dữ liệu khác sang kiểu dữ liệu Booleanbằngcách sửdụnghàmbool().Nhữnggiá trịsau đâyđượctrả vềkếtquảFalse:

 False

 Sốnguyên, số thập phân,sốphức nếu sốđó bằng0

 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ácphéptoántrênkiểuBoolean:

Mộtsốphéptoánthôngdụngtrênkiểubool:not,==,!=,or,and

Quy tắc:

Trang 10

A B not A not B A==B A!=B AorB AandB

not>and>or

Trang 11

11| Page

Trang 12

Tấtcảcác loạidữliệu số(trừcomplex)đềuthựchiệnđượccác phéptínhsau :

Trang 14

a Địnhnghĩa:

- TrongPython,Sequenceslàtậphợpcóthứtựcủacáckiểudữliệugiốnghoặc khácnhau Sequences cho phép lưu trữ nhiều giá trị một cách có tổchức và hiệuquả

- Các thaotáctrìnhtựđượcsắpxếp theo thứtựưutiêntăngdần:

Hoạtđộng Kếtquả

x in s Truenếu mộtphần tửcủasbằngx, nếukhông thìFalse

x not in s Falsenếu mộtphần tửcủasbằngx, nếukhông thìTrue

s+ t Nốit và s

Trang 15

s* nhoặcn * s Thêmsvàochínhnó nlần

s[i] Lậpchỉmục phầntử thứi củas,mặcđịnh =0

s[i:j] Cắtlát stừ iđến j

s[i:j:k] Cắtlátstừ iđếnjvới khoảngcách (bước)làk

len(s) Chiều dàicủas

min(s) Giátrị nhỏnhất củas

- Chuỗi làdữliệu bấtbiếntrongPython.(Mộtkhiđượctạo,chuỗiđókhôngthể thay đổi)

- Chuỗiđượcđặttrong dấu ‘’ hoặc dấu“”

Trang 16

- Các chuỗicóthểnốivớinhaubằngtoán tử+hoặc viếtliềnkềnhau, vàlặplạichuỗi bằngcáchsử dụng toán tử *

Trang 17

o Sửdụngmột cặpdấu ngoặc vuôngđể biểuthị danhsá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]

Trang 18

- Cắtlát:Cóthểtruy cậpđếnmộtloạt phầntửtronglistbằngcáchsử dụng toántửcắt lát : (dấu 2 chấm).

- Một sốhàmxửlídanhsách:

 list.sort(reverse,key)

Hàmnày cótácdụngsắp xếp lạicácphầntửtronglisttheo mộtthứtự xácđịnh.Trongđó:

o reverselà1boolean cấuhìnhkiểusắp xếp.Nếureverse=Truethì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đượcdùngđểsắp xếpcáclist tuple hoặcdictionary)

 list.append(obj):Hàmcótácdụngthemvào phầncuốicủamộtlist

Trang 19

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

 ist.insert(index,val):

Hàmcó tácdụngthêmphần tửvàovịtríindex của list,vàcác phầntử sauindexđó sẽđượcđẩy về phíasau

Trongđó:

o index làvị trí màbạn muốn thêm phần tử val vào

o vallàphần tử mà bạn muốnthêm vào tronglist

Range:

- Hàmrange()đượctíchhợpsẵntrongPythonđượcsửdụngđểtạomộtchuỗicácsố 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ộtsố đượcchỉ định

Step:làsố nguyênxácđịnhkhoảngcách bướcđicủamỗisốtrongchuỗi

Trang 20

o Đặttấtcảcácphần tửtrong dấungoặc đơn()

o Sửdụngdấu phẩy(,) đểngăncáchcác phần tửtrongtuple

Trang 21

- Cắtlát:Cóthể truycậpđến mộtloạtphần tửtrongtuple bằng cáchsử dụng toántửcắt lát : (dấu 2 chấm).

- Thayđổi mộttuple:

Tuple không thể thay đổi, các phần tử trong tuple cũng không thể thay đổi saukhigán.Tuy nhiênnếu phầntử trongtuplecómột kiểudữ 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ángiá trị khácchotuple (gọi

- CúphápcủahàmMap ()trongPythonlà:map(function,iterables)

Set

ofvalues

Trang 22

Frozenset Complex Nếu đối số tích hợp đầu vào được

cungcấp,thìFrozenset đượctạotừcácphầntửlặp lại Nếu không có đối số được cungcấp, thìmột đối tượng Frozenset rỗngđượctrảvề

Trang 23

Output:

Trang 25

{'cherry','apple','banana'}

VD:

Ngày đăng: 16/03/2022, 10:48

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w