1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình Python: Bài 7 - Trương Xuân Nam

24 6 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 24
Dung lượng 693,07 KB

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

Nội dung

Bài giảng Lập trình Python: Bài 7 Kiểu dữ liệu từ điển, module và package cung cấp cho người học những kiến thức như: Dictionary (từ điển); Module và Package; Module math; Bài tập. Mời các bạn cùng tham khảo!

Trang 1

LẬP TRÌNH PYTHON

Bài 7: Kiểu dữ liệu từ điển, module và

package

Trang 2

Tóm tắt nội dung bài trước

▪ Python có kiểu dữ liệu tập hợp (set) lấy cảm hứng từ tập

hợp trong toán học Set có hai đặc điểm chính:

▪ Các dữ liệu con bên trong nó đôi một khác nhau

▪ Chỉ chứa các dữ liệu loại bất biến (immutable)

▪ Tập hợp không có tính thứ tự, vì vậy không có phép toán

chỉ mục và cắt lát, tuy vậy vẫn có thể duyệt các phần tử con trong tập hợp bằng for

▪ Python cung cấp nhiều phương thức, phép so sánh và

phép toán hữu ích cho tập hợp

▪ Tập tĩnh (frozenset) là tập hợp bất biến, không thể thay

đổi sau khi khởi tạo xong

Trang 4

Dictionary (từ điển)

Phần 1

Trang 5

▪ Một mục là một cặp (pair) khóa ( key ) và giá trị ( value )

• Tương đương với khái niệm mục từ và ngữ nghĩa trong từ điển thông thường

▪ Các khóa (key) không được trùng nhau, như vậy có thể xem từ điển như một loại set

▪ Các khóa không sắp thứ tự như từ điển thông thường

▪ Chỉ dữ liệu bất biến (immutable) mới được dùng làm khóa

Trang 6

Dictionary (từ điển)

▪ Một cặp trong từ điển viết ở dạng <key> : <value>

▪ Từ điển có thể khai báo trực tiếp dùng cú pháp của set

d1 = { } # từ điển rỗng

▪ Như vậy Python coi từ điển là dạng mở rộng của tập hợp

▪ Trường hợp lấy dữ liệu từ nguồn khác, cách thích hợp

nhất là sử dụng hàm khởi tạo dict()

d5 = dict (d4) # lấy dữ liệu từ d4

print ( d5 ) # {'tên': 'nam', 'sđt': 0}

d6 = dict () # tạo từ điển rỗng

print ( d6 ) # {}

Trang 7

Dictionary (từ điển)

▪ Python cũng cho phép tạo từ điển bằng bộ suy diễn từ

điển, với cú pháp tương tự như bộ suy diễn danh sách

▪ Ví dụ: tạo từ điển gồm các bộ khóa là số tự nhiên nhỏ

hơn N và giá trị tương ứng là lập phương của nó

n = int ( input ( 'N = ' ))

d = { i : i * i * i for i in range ( n ) }

print ( d )

▪ Ví dụ: tạo từ điển có khóa các ký tự xuất hiện trong từ S

và giá trị là số lần xuất hiện của ký tự đó trong S

S = input ( 'N = ' )

d = { w : S count ( w ) for w in S }

print ( d )

Trang 8

Dictionary (từ điển)

▪ Chú ý: chỉ những loại dữ liệu immutable (không thể thay

đổi) mới có thể dùng làm key của từ điển

dic = { (1,2,3):"abc", 3.1415:"abc"}

dic = { [1,2,3]:"abc"} # lỗi

▪ Một số phép toán / phương thức thường dùng

▪ len(d) : trả về độ dài của từ điển (số cặp key-value)

▪ del d[k] : xóa key k (và value tương ứng)

▪ k in d : trả về True nếu có key k trong từ điển

▪ k not in d : trả về True nếu không có key k trong từ điển

▪ pop(k) : trả về value tương ứng với k và xóa cặp này đi

▪ popitem() : trả về (và xóa) một cặp (key, value) tùy ý

Trang 9

Dictionary (từ điển)

▪ Một số phép toán / phương thức thường dùng

▪ get(k) : lấy về value tương ứng với key k

• Khác phép [] ở chỗ get trả về None nếu k không phải là key

▪ update(w) : ghép các nội dung từ từ điển w vào từ điển hiện tại (nếu key trùng thì lấy value từ w)

▪ items() : trả về list các cặp (key, value)

▪ keys() : trả về các key của từ điển

▪ values() : trả về các value của từ điển

▪ pop(k) : trả về value tương ứng với k và xóa cặp này đi

▪ popitem() : trả về (và xóa) một cặp (key, value) tùy ý

Trang 11

Truy xuất dữ liệu theo khóa

▪ Từ điển cho phép lấy giá trị tương ứng với khóa k bằng

phương thứ get(k), nhưng có thể dùng chỉ mục thuận

tiện hơn nhiều

print ( 'd.get(3) = ' , d get ( 3 )) # d.get(3) = three print ( 'd[3] = ' , d [ 3 ]) # d[3] = three

print ( 'd.get(9) = ' , d get ( 9 )) # d.get(9) = None print ( 'd[9] = ' , d [ 9 ]) # KeyError

d [ 3 ] = 'ba' # cập nhật cặp 3: 'three' thành 3: 'ba'

print ( d ) # {1: 'one', 2: 'two', 3: 'ba', 4: 'bốn'}

▪ Chú ý: hai cách này không tương đương Khi dữ liệu

không có trong từ điển, get(k) trả về None còn chỉ mục phát sinh ngoại lệ KeyError

Trang 12

Xóa dữ liệu trong từ điển

▪ Python có nhiều cách để xóa dữ liệu trong từ điển hoặc

lấy dữ liệu ra khỏi từ điển

▪ Các phương thức pop, popitem, clear được thiết kế cho

những tình huống lập trình khác nhau

del d [ 1 ] # xóa bỏ mục 1: 'one'

print ( d ) # {3: 'three', 2: 'two', 0: 'zero'} print ( d pop ( 2 )) # 'two'

print ( d popitem ()) # (0, 'zero')

d clear () # xóa rỗng từ điển

Trang 13

Kiểm tra dữ liệu trong từ điển

▪ Phép kiểm tra dữ liệu trong từ điển chỉ làm việc với khóa

# kiểm tra có 2 trong từ điển không? True

Trang 14

Duyệt dữ liệu trong từ điển

▪ Python cung cấp nhiều phương thức lấy về các nhóm dữ

liệu trong từ điển, ta có thể dễ dàng duyệt chúng với

vòng lặp for

d = { 1 : 'one' , 3 : 'three' , 2 : 'two' , 0 : 'zero' }

# duyệt từ điển theo khóa: 1, 3, 2, 0

for i in d: print (i)

# duyệt từ điển theo khóa: 1, 3, 2, 0

for i in d.keys(): print (i)

# duyệt theo cặp khóa-giá trị: (1, 'one'), (3, 'three'),

for i in d.items(): print (i)

# duyệt theo giá trị: 'one', 'three', 'two', 'zero'

for i in d.values(): print (i)

Trang 15

Module và Package

Phần 2

Trang 16

bản để tái sử dụng lại mã nguồn

▪ Cú pháp: import <tên-module>

▪ Có thể import cùng lúc nhiều module cách nhau bởi dấu phẩy

▪ Nếu muốn sử dụng các hàm, biến trong module thì cần viết

tường minh tên module đó

▪ Có thể import riêng một hoặc nhiều hàm từ một module, cú pháp: from <tên-module> import fuc1, fuc2,… fucN

Trang 17

▪ Giải quyết tranh chấp định danh của thư viện khác nhau

▪ Python có rất nhiều các package hỗ trợ mọi nhu cầu xử lý

Trang 18

Module math

▪ Một module rất thông dụng của python: import math

▪ Math có nhiều hằng số định nghĩa sẵn:

▪ pi : 3.141592…

▪ e : 2.718281…

▪ tau : 6.283185… (2 * pi)

▪ inf : dương vô cùng (âm vô cùng là –math.inf)

▪ nan : not a number (tương đương với float('nan'))

▪ Math chứa nhiều hàm toán học:

▪ ceil (x): trả về số nguyên nhỏ nhất nhưng không nhỏ hơn x

▪ copysign (x, y): copy dấu của y gán sang x

• Ví dụ: copysign(1.0, -0.0) trả về -1

▪ fabs (x): trả về trị tuyệt đối của x

Trang 19

Module math

▪ Math chứa nhiều hàm toán học (tiếp…):

▪ factorial (x): trả về x!

▪ floor (x): trả về số nguyên lớn nhất nhưng không vượt quá x

▪ gcd (a, b): trả về ước số chung lớn nhất của a và b

▪ isinf (x): trả về True nếu x là dương/âm vô cùng

▪ isnan (x): trả về True nếu x là NaN (not a number)

▪ trunc (x): trả về phần nguyên của x

Trang 20

Module math

▪ Math cung cấp một số hàm lượng giác:

▪ degrees (x): chuyển x từ radians sang độ

▪ radians (x): chuyển x từ độ sang radians

▪ acos (x): trả về arc cos x (độ đo radians)

▪ asin (x): trả về arc sin x (độ đo radians)

▪ atan (x): trả về arc tang x (độ đo radians)

▪ cos (x): trả về cos x (độ đo radians)

▪ sin (x): trả về sin x (độ đo radians)

▪ tan (x): trả về tang x (độ đo radians)

Trang 21

Bài tập

Phần 4

Trang 22

Bài tập

Trang 23

Bài tập

Ngày đăng: 09/08/2021, 18:17